当前位置: 首页 > 知识库问答 >
问题:

LinearLayoutManager setReverseLayout() == true 但 items 从底部堆叠

宇文良骏
2023-03-14

这似乎是一个简单的解决方案,但似乎设置

private RecyclerView mRecyclerView;
private RecyclerView.Adapter mAdapter;
private LinearLayoutManager mLayoutManager;

.... // More code

    mRecyclerView = (RecyclerView) rootView.findViewById(R.id.recycler_view);

    // Add item decoration
    mRecyclerView.addItemDecoration(new SpacesItemDecoration(DIVIDER_SPACE));

    // use this setting to improve performance if you know that changes
    // in content do not change the layout size of the RecyclerView
    mRecyclerView.setHasFixedSize(true);

    // use a linear layout manager
    mLayoutManager = new LinearLayoutManager(getActivity());
    mLayoutManager.setReverseLayout(true); // THIS ALSO SETS setStackFromBottom to true
    mRecyclerView.setLayoutManager(mLayoutManager);

似乎还设置了物品从底部堆叠

我试图将setStackFromBottom设置为false,但这并没有做任何事情,什么是颠倒项目顺序但仍从顶部填充的最佳方法?我应该改用自定义比较器类吗?我希望这比创建另一个类更容易。

共有3个答案

穆铭晨
2023-03-14

我找到了使用xml解决这个问题的有效方法:

app:layoutManager="android.support.v7.widget.LinearLayoutManager"
app:stackFromEnd="true"
贺景山
2023-03-14

被接受的答案很有效,我经历了一段艰难的过程才能使其正常工作,因为我遇到了<code>无法解决方法setReverseLayout</code>错误。

然后在寻找解决方案后,我发现那里有一个愚蠢的错误。我使用的是RecyclizerView.LayoutManager而不是LinearLayoutManager

所以我想,为了消除这里的困惑,我需要把它作为一个答案。

不要使用< code > RecyclerView。LayoutManager而不是< code>LinearLayoutManager

// Declare your RecyclerView and the LinearLayoutManager like this 
private RecyclerView mRecyclerView;
private LinearLayoutManager mLayoutManager;

...

// Now set the properties of the LinearLayoutManager 
mLayoutManager = new LinearLayoutManager(MainActivity.this);
mLayoutManager.setReverseLayout(true);
mLayoutManager.setStackFromEnd(true);

// And now set it to the RecyclerView
mRecyclerView.setLayoutManager(mLayoutManager);
mRecyclerView.setAdapter(yourAdapter);
逄学潞
2023-03-14

从文档设置反转布局

用于反转项目遍历和布局顺序。这类似于 RTL 视图的布局更改。设置为 true 时,第一项布局在 UI 的末尾,第二项布局在它之前,依此类推。对于水平布局,这取决于布局方向。设置为 true 时,如果 RecyclerView 是 LTR,那么它将从 RTL 布局,如果 RecyclerView} 是 RTL,它将从 LTR 布局。如果你正在寻找与 setStackFromBottom(boolean) 完全相同的行为,请使用 setStackFromEnd(boolean)

因此,尝试在 LinearLayoutManager 实例上使用 setStackFromEnd(boolean),

LinearLayoutManager mLayoutManager = new LinearLayoutManager(getActivity());
mLayoutManager.setReverseLayout(true);
mLayoutManager.setStackFromEnd(true);
 类似资料:
  • 问题内容: 这似乎是一个简单的解决方案,但似乎 似乎也将项目设置为从底部堆叠 我尝试将其设置为false,但没有执行任何操作,颠倒物料顺序但仍从顶部填充的最佳方法是什么?我应该改用自定义比较器类吗?我希望这比创建另一个类要容易得多。 问题答案: 从文档中获取setReverseLayout 用于反转项目遍历和布局顺序。此行为类似于RTL视图的布局更改。设置为true时,第一项放置在UI的末尾,第二

  • 我正在做这个练习,在这个练习中,我必须交替显示堆栈顶部的元素,然后是底部的元素,直到它是空的。我仍然发现很难利用递归来解决这些练习,我想知道是否有人可以帮助我。我不能使用循环,只是递归。这是说明:“给定stack_t抽象数据类型及其定义的操作:创建,顶部,推送,弹出,元素(返回堆栈中元素的数量),破坏:完成接收堆栈并显示堆栈中交替启动的项的one_and_one函数用顶部元素,然后用底部元素,直到

  • 我想在我的应用程序中创建从下到上滚动的滑动菜单。我在活动的底部有一个按钮,当用户点击按钮时,菜单就会显示出来。当用户再次点击按钮时,菜单应该消失。用户还可以上下滑动以显示或消失菜单。 菜单可以像这个应用程序中的任何一个。做 请看下面的截图。你知道怎么做吗?你有什么建议吗?

  • 爬取的主要目标就是从非结构性的数据源提取结构性数据,例如网页。 Scrapy提供 Item 类来满足这样的需求。 Item 对象是种简单的容器,保存了爬取到得数据。 其提供了 类似于词典(dictionary-like) 的API以及用于声明可用字段的简单语法。 声明Item Item使用简单的class定义语法以及 Field 对象来声明。例如: import scrapy class Pro

  • 我如何从底部选择第三个div(即在本例中是带有“4”的div) 我试过了,但它选择了最后三个Divs。 请知道,我可能不知道总的div(它是动态的),但我只需要从底部选择第三个div。

  • 问题内容: 我的交互式控制台的简要记录: 到底为什么呢? 编辑: 为了对比起见,请考虑运算符。 这使得有很大的意义,因为虽然和都意味着同样的事,作为一个条件语句,他们真的是不一样的东西。 再次编辑: 更有趣的后果: 问题答案: 因为Python中的Boolean是整数的子类型。从文档中: 布尔值是两个常量对象False和True。它们用于表示真值(尽管其他值也可以视为假或真)。在数字上下文中(例如