(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如何實現點擊事件。
新聞熱點
疑難解答