RecyclerView 的一些實用用法

自從谷歌推出RecyclerView 以來,ListView 逐漸的淡出歷史舞臺,RecyclerView使用的越來越多,但是盡管RecyclerView有那么多的優(yōu)勢,但是我們在平時的使用中可能還是會遇到一些小問題。

  • 給RecyclerView添加默認的分割線

RecyclerView 不像ListView那樣可以直接在布局的時候設(shè)置Divider,所以默認RecyclerView 是沒有分割線的,但是官方也是默認提供了添加的途徑的,方法如下:

addItemDecoration(new DividerItemDecoration(getActivity(),DividerItemDecoration.VERTICAL));
  • 給RecyclerView 的item 添加點擊效果

RecyclerView 添加點擊效果不像ListView 直接在里面設(shè)置listSelector即可,RecyclerView 里面是沒有這個屬性的,而且你如果按照ListView的方法來添加很可能要失望,不過RecyclerView 的方法也簡單,最簡單的辦法就是在item中添加如下代碼:

android:background="?android:attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
  • Recycleview 縱向間距設(shè)置
/**
 * linearlayout item 縱向分割器
 */
public class SpaceItemDecoration extends RecyclerView.ItemDecoration {
    int mSpace;
    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
        super.getItemOffsets(outRect, view, parent, state);
        outRect.left = mSpace;
        outRect.right = mSpace;
        outRect.bottom = mSpace;
        if (parent.getChildAdapterPosition(view) == 0) {
            outRect.top = mSpace;
        }
    }

    public SpaceItemDecoration(int space) {
        this.mSpace = space;
    }
}
  • Recycleview 宮格間距設(shè)置
public class GridSpaceItemDecoration extends RecyclerView.ItemDecoration {
    private int padding;

    public GridSpaceItemDecoration(Context context, int space) {
        padding = space;
    }

    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
        super.getItemOffsets(outRect, view, parent, state);
        //outRect就是你那個item條目的矩形
        outRect.left = padding;  //相當(dāng)于 設(shè)置 left padding
        outRect.top = padding;   //相當(dāng)于 設(shè)置 top padding
        outRect.right = padding; //相當(dāng)于 設(shè)置 right padding
        outRect.bottom = padding;  //相當(dāng)于 設(shè)置 bottom padding
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容