如何设置setStackFromEnd(true);在GridLayoutManager for Recyclerview?

时间:2016-10-28 08:25:17

标签: android gridview android-recyclerview

我希望网格布局从上一次加载数据,因为我使用了以下代码

GridLayoutManager recyclerViewLayoutManager = new GridLayoutManager(getActivity(), 3);
//       LinearLayoutManager recyclerViewLayoutManager = new LinearLayoutManager(getActivity());
recyclerViewLayoutManager.setStackFromEnd(true);
lv_explore.setLayoutManager(recyclerViewLayoutManager);

它给我这样的错误

java.lang.UnsupportedOperationException: GridLayoutManager does not support stack from end. Consider using reverse layout
at android.support.v7.widget.GridLayoutManager.setStackFromEnd(GridLayoutManager.java:107)
at in.co.ans.jalsounique.FragmentExplore.onCreateView(FragmentExplore.java:86)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2080)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1108)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1290)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:801)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1677)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:536)
at android.os.Handler.handleCallback(Handler.java:746)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5443)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

当我使用LinearLayoutManager它正在工作但我需要网格视图,请告知应该更好的方法?

1 个答案:

答案 0 :(得分:1)

它的含义正是如此:setStackFromEnd不受支持。它仅适用于列表,而不适用于网格。

  

考虑使用反向布局

因此,解决此问题的方法是在setReverseLayout(true)上致电GridLayoutManager

这意味着您需要撤消列表的整个订单。如果要追加要显示在底部的项目,则必须在开头插入它们。