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

Jig*_*iya 5 android gridview android-recyclerview

我希望网格布局从最后加载我使用下面代码的数据

GridLayoutManager recyclerViewLayoutManager = new GridLayoutManager(getActivity(), 3);
//       LinearLayoutManager recyclerViewLayoutManager = new LinearLayoutManager(getActivity());
recyclerViewLayoutManager.setStackFromEnd(true);
lv_explore.setLayoutManager(recyclerViewLayoutManager);
Run Code Online (Sandbox Code Playgroud)

它给我这样的错误

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)
Run Code Online (Sandbox Code Playgroud)

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

kri*_*son 1

正如它所说:setStackFromEnd不支持。它仅适用于列表,不适用于网格。

考虑使用反向布局

因此,解决此问题的方法是调用setReverseLayout(true)您的GridLayoutManager.

这意味着您需要颠倒列表的整个顺序。如果您要附加要显示在底部的项目,则必须将它们插入到开头。