当前位置: 首页 > 面试题库 >

LinearLayoutManager setReverseLayout()== true,但项目从底部堆叠

蓝泰平
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,但没有执行任何操作,颠倒物料顺序但仍从顶部填充的最佳方法是什么?我应该改用自定义比较器类吗?我希望这比创建另一个类要容易得多。


问题答案:

从文档中获取setReverseLayout

用于反转项目遍历和布局顺序。此行为类似于RTL视图的布局更改。设置为true时,第一项放置在UI的末尾,第二项放置在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,但这并没有做任何事情,什么是颠倒项目顺序但仍从顶部填充的最佳方法?我应该改用自定义比较器类吗?我希望这比创建另一个类更容易。

  • 我想在我的Android项目中创建一个底部导航栏。这里有导航栏中的5个项目(只有项目图标。没有任何项目的名称)。我想以这样的方式制作它,当一个项目被选中时,它会随着显示其名称而被放大一点。我该如何做到这一点? 另外,我尝试了一个图像视图,里面有图像按钮。一个未放大的图标图像按钮和相应的放大图标(它的名字)图像按钮重叠在一起,选择一个可见,另一个不可见,但这是个坏主意。代码可以工作,但布局非常糟糕和

  • 我正在尝试创建一个底部有隐藏按钮的项目列表。默认情况下,按钮在屏幕上不可见。 如果用户滚动到列表底部,则该按钮应显示为列表的最后一项。 我创作了插图来更好地形象化期望的行为: 草图1:包含几个项目的列表 草图2:有很多项目的列表 我已经尝试了类似问题的解决方案(https://stackoverflow.com/a/69196765/11720296),并添加了额外的偏移量,但不幸的是它不起作用。

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

  • 问题内容: 我有一个具有以下属性的flex容器(蓝色正方形): 因此,其子项(浅蓝色方块)如下所示排列它们自己。但是,我想从正常流程中添加另一个孩子(绿色正方形)并将其相对于其父对象放置。要将其定位在下面,如您所见,我最好编写类似bottom: 20px;和的内容margin: auto;。 我试着z-index无济于事。我应该如何处理?我应该使用另一个父元素吗? 问题答案: 以下是实现此布局的五

  • 我在Galaxy Note 2和Android上工作。我想在活动的底部ActionBar中添加4个文本项。但是,添加第三个后,第四个在纵向模式下不会出现在屏幕上,而是出现在横向模式下的顶部ActionBar中。 我在这些项目上尝试了所有Android选项,结果总是一样的。 如何使用基本操作栏或其他操作栏添加4? 谢谢。 编辑: 我的XML菜单文件: