首页 > 学院 > 开发设计 > 正文

RecyclerView的基本用法

2019-11-07 23:30:39
字体:
来源:转载
供稿:网友
RecyclerView的基本用法

RecyclerView的实现是比较简单的,只需要三步:1、设置布局管理器:public void setLayoutManager(LayoutManager layout);查看源码可知LayoutManager是一个抽象类,实现这个抽象类的有:
(1)LinearLayoutManager(线性布局管理器);(2)GridLayoutManager(网格布局管理器);(3)StaggeredGridLayoutManager(瀑布流式管理器);2、RecyclerView的分割线需要自己添加,源码提供了一个方法来实现:public void addItemDecoration(ItemDecoration decor);沿着源码继续追溯,发现ItemDecoration是一个抽象类,那么我们就可以通过创建一个类继承它,从而实现自定义的分割线,下一篇再讲解。当然,也有比较简单的方法就能完成我们的基本需求了。DividerItemDecoration就是提供给我们的已经继承了ItemDecoration的一个类。/***DividerItemDecoration的构造方法*@param context Current context*@param orientation Divider orientation.*/public DividerItemDecoration(Context context, int orientation);//根据构造方法创建对象DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(this, DividerItemDecoration.VERTICAL);//添加分割线recyclerView.addItemDecoration(dividerItemDecoration);那么如果我想要别的风格的分割线呢?自定义分割线对于初学者来说确实是有难度的,那怎么办呢?我们可以修改默认的分割线风格,继续分析DividerItemDecoration这个类的源码: PRivate static final int[] ATTRS = new int[]{ android.R.attr.listDivider };  public DividerItemDecoration(Context context, int orientation) {        final TypedArray a = context.obtainStyledAttributes(ATTRS);        mDivider = a.getDrawable(0);        a.recycle();        setOrientation(orientation);    }因此我们可以自己定义一个drawable:divider_bg.xml将定义好的drawable替换默认的分割线风格,stytles.xml:<style name="APPTheme" parent="Theme.AppCompat.Light.DarkActionBar"><item name="android:listDivider">@drawable/divider_bg</item></style>当然对于分割线,有的人比较简单粗暴,直接就是设置item之间的边距,加上修饰的背景颜色也可以达到目的。3、设置适配器public void setAdapter(Adapter adapter);那么我们需要创建一个适配器对象,追着源码看:public static abstract class Adapter<VH extends ViewHolder> {}显然,Adapter也是个抽象类,我们需要自己实现。总结:RecyclerView结构层次清晰,高度解耦,轻松的就能实现了ListView和GridView的相关功能,但是item的点击事件需要自己实现。那么下一篇就分析RecyclerView如何实现点击事件。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表