公告
财富商城
积分规则
提问
发文
2019-02-14 14:28发布
霸刀☆藐视天下
I need to implement something like this:
Seems like StaggeredGridLayoutManager | GridLayoutManager can not do it, how to achieve it for now?
GridView has good performance?
Since the two-way library is deprecated, you can look up GridLayoutManager. There is GridLayoutManager.SpanSizeLookup class which you can use. See this link http://android-er.blogspot.in/2015/07/set-spansizelookup-to-gridlayoutmanager.html
GridLayoutManager.SpanSizeLookup
You can achieve this kind of RecyclerView behavior with twoway-view
I tested the 1.0.0-SNAPSHOT version of this lib.
It's kind of old project (not maintened anymore), but it can help you to write your own RecyclerView/LayoutManager.
Example of your layout
In RecyclerViewAdapter you need to set the span logic:
@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); } }
I used custom RecyclerView from the library (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" />
Result screenshot:
最多设置5个标签!
Since the two-way library is deprecated, you can look up GridLayoutManager. There is
GridLayoutManager.SpanSizeLookup
class which you can use. See this link http://android-er.blogspot.in/2015/07/set-spansizelookup-to-gridlayoutmanager.htmlYou can achieve this kind of RecyclerView behavior with twoway-view
I tested the 1.0.0-SNAPSHOT version of this lib.
It's kind of old project (not maintened anymore), but it can help you to write your own RecyclerView/LayoutManager.
Example of your layout
In RecyclerViewAdapter you need to set the span logic:
I used custom RecyclerView from the library (TwoWayView):
Result screenshot: