我需要實現這樣的事情:安卓:如何實現與不同列/行大小電網
好像StaggeredGridLayoutManager | GridLayoutManager不能這樣做, 現在該如何實現它?
GridView有不錯的表現嗎?
我需要實現這樣的事情:安卓:如何實現與不同列/行大小電網
好像StaggeredGridLayoutManager | GridLayoutManager不能這樣做, 現在該如何實現它?
GridView有不錯的表現嗎?
可以實現這種RecyclerView行爲與twoway-view
我測試了這個LIB的1.0.0-快照版本。
這是一種舊的項目(不再維護),但它可以幫助你編寫你自己的RecyclerView/LayoutManager。佈局的
例
在RecyclerViewAdapter需要設置跨度邏輯:
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
super.onBindViewHolder(holder, position);
final SpannableGridLayoutManager.LayoutParams lp =
(SpannableGridLayoutManager.LayoutParams) holder.itemView.getLayoutParams();
final int span1;
final int span2;
if (position == 0) {
span1 = 2;
span2 = 2;
} else if (position == 3) {
span1 = 2;
span2 = 3;
} else {
span1 = 1;
span2 = 1;
}
final int colSpan = (span2);
final int rowSpan = (span1);
if (lp.rowSpan != rowSpan || lp.colSpan != colSpan) {
lp.rowSpan = rowSpan;
lp.colSpan = colSpan;
holder.itemView.setLayoutParams(lp);
}
}
我使用的自定義RecyclerView從庫(TwoWayView):
<org.lucasr.twowayview.widget.TwoWayView
android:id="@+id/fragment_drawer_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="60dp"
android:clipToPadding="false"
android:paddingBottom="32dp"
app:twowayview_layoutManager="SpannableGridLayoutManager"
app:twowayview_numColumns="3"
app:twowayview_numRows="3" />
由於不推薦使用雙向庫,因此可以查找GridLayoutManager。有GridLayoutManager.SpanSizeLookup
類可以使用。 看到這個鏈接http://android-er.blogspot.in/2015/07/set-spansizelookup-to-gridlayoutmanager.html