RecyclerItemDecoration

An Android ItemDecorations library which easily add ItemDecoration to RecyclerView items. Currently Contains PinnedHeaderItemDecoration, DividerItemDecoration, OffsetsItemDecoration, ShaderItemDecoration

  • 所有者: dinuscxj/RecyclerItemDecoration
  • 平台:
  • 許可證:
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

RecyclerItemDecoration

RecyclerViewItemDecoration is an Android library that allows developers to easily create RecyclerView with ItemDecoration.
Besides, the library will have new ItemDecoration added constantly.




Features

  • Support custom top shader or bottom shader to the RecyclerView.
  • Support the ItemView with the specific ViewType sticky on the header of the RecyclerView.
  • Support custom different Divider or Offsets , when using RecyclerView with different ViewType.

Usage

Add dependency

dependencies {
   compile 'com.dinuscxj:recycleritemdecoration:1.0.0'
}

Set HeaderItemDecoration

PinnedHeaderDecoration pinnedHeaderDecoration = new PinnedHeaderDecoration();
pinnedHeaderDecoration.registerTypePinnedHeader(getItemViewType(ItemTitle.class),
    new PinnedHeaderDecoration.PinnedHeaderCreator() {
        @Override
        public boolean create(RecyclerView parent, int adapterPosition) {
            return true;
        }
    }
);

SetShaderItemDecoration

//simple usage
ShaderItemDecoration shaderItemDecoration = new ShaderItemDecoration(getActivity(),
                    ShaderItemDecoration.SHADER_BOTTOM, ShaderItemDecoration.SHADER_TOP, ShaderItemDecoration.SHADER_RIGHT, ShaderItemDecoration.SHADER_LEFT);
shaderItemDecoration.setShaderTopDistance(shaderTopDistance);
shaderItemDecoration.setShaderBottomDistance(shaderBottomDistance);
//complex usage
ShaderItemDecoration shaderItemDecoration = new ShaderItemDecoration(getActivity(),
                    ShaderItemDecoration.SHADER_BOTTOM, ShaderItemDecoration.SHADER_TOP);
shaderItemDecoration.registerBottomShaderCreator(new ShaderItemDecoration.ShaderCreator() {
    @Override
    public Shader createShader(RecyclerView parent) {
        return null;
    }
});

Set LinearDividerItemDecoration

//simple usage
LinearDividerItemDecoration dividerItemDecoration = new LinearDividerItemDecoration(
                    getActivity(), LinearDividerItemDecoration.LINEAR_DIVIDER_VERTICAL);
dividerItemDecoration.setDivider(divider);
//complex usage
LinearDividerItemDecoration dividerItemDecoration = new LinearDividerItemDecoration(
                    getActivity(), LinearDividerItemDecoration.LINEAR_DIVIDER_VERTICAL);
dividerItemDecoration.registerTypeDrawable(getItemViewType(ItemAnimal.class),
    new LinearDividerItemDecoration.DrawableCreator() {
        @Override
        public Drawable create(RecyclerView parent, int adapterPosition) {
            return getResources().getDrawable(R.drawable.bg_animal_divider);
        }
    }
);

Set LinearOffsetsItemDecoration

//simple usage
LinearOffsetsItemDecoration offsetsItemDecoration = new LinearOffsetItemDecoration(
                      LinearOffsetItemDecoration.LINEAR_OFFSETS_HORIZONTAL);
offsetsItemDecoration.setItemOffsets(itemOffsets);
//complex usage
LinearOffsetsItemDecoration offsetsItemDecoration = new LinearOffsetItemDecoration(
                    LinearOffsetItemDecoration.LINEAR_OFFSETS_HORIZONTAL);
offsetsItemDecoration.registerTypeOffset(getItemViewType(ItemAnimal.class),
    new LinearOffsetItemDecoration.OffsetsCreator() {
        @Override
        public int create(RecyclerView parent, int adapterPosition) {
            return 30;
        }
    }
);
offsetsItemDecoration.setOffsetEdge(true);
offsetsItemDecoration.setOffsetLast(true);

Set GridDividerItemDecoration

//simple usage
GridDividerItemDecoration dividerItemDecoration = new GridDividerItemDecoration(getActivity(),
                    GridDividerItemDecoration.GRID_DIVIDER_VERTICAL);
dividerItemDecoration.setVerticalDivider(verticalDivider);
dividerItemDecoration.setHorizontalDivider(horizontalDivider);
//complex usage
GridDividerItemDecoration dividerItemDecoration = new GridDividerItemDecoration(getActivity(),
                    GridDividerItemDecoration.GRID_DIVIDER_VERTICAL);
dividerItemDecoration.registerTypeDrawable(getItemViewType(ItemAnimal.class),
    new GridDividerItemDecoration.DrawableCreator() {
        @Override
        public Drawable createVertical(RecyclerView parent, int adapterPosition) {
            return getResources().getDrawable(R.drawable.bg_animal_divider);
        }
        @Override
        public Drawable createHorizontal(RecyclerView parent, int adapterPosition) {
            return getResources().getDrawable(R.drawable.bg_animal_divider);
        }
    }
);

Set GridOffsetsItemDecoration

//simple usage
GridOffsetsItemDecoration offsetsItemDecoration = new GridOffsetsItemDecoration(
                    GridOffsetsItemDecoration.GRID_OFFSETS_HORIZONTAL);
offsetsItemDecoration.setVerticalItemOffsets(verticalItemOffsets);
offsetsItemDecoration.setHorizontalItemOffsets(horizontalItemOffsets);
//complex usage
GridOffsetsItemDecoration offsetsItemDecoration = new GridOffsetsItemDecoration(
                    GridOffsetsItemDecoration.GRID_OFFSETS_HORIZONTAL);
offsetsItemDecoration.registerTypeDrawable(getItemViewType(ItemAnimal.class),
    new GridOffsetsItemDecoration.OffsetsCreator() {
        @Override
        public int createVertical(RecyclerView parent, int adapterPosition) {
            return 30;
        }
        @Override
        public int createHorizontal(RecyclerView parent, int adapterPosition) {
            return 30;
        }
    }
);
offsetsItemDecoration.setOffsetEdge(true);
offsetsItemDecoration.setOffsetLast(true);

Learn More About RecyclerView

License

Copyright 2015-2019 dinus

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

主要指標

概覽
名稱與所有者dinuscxj/RecyclerItemDecoration
主編程語言Java
編程語言Java (語言數: 1)
平台
許可證
所有者活动
創建於2016-04-09 15:45:42
推送於2022-02-24 04:09:32
最后一次提交2016-08-29 00:11:05
發布數0
用户参与
星數419
關注者數11
派生數67
提交數10
已啟用問題?
問題數2
打開的問題數2
拉請求數0
打開的拉請求數1
關閉的拉請求數0
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?