问题标签 [linearlayoutmanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1803 浏览

android - 使最后一个 RecyclerView 项填充 RecyclerView 中的空间(如果数据计数为奇数)

到目前为止,我一直在尝试创建一个 recyclerView,但现在我遇到了一个问题。

我需要让它看起来像这样

在此处输入图像描述

我需要使它像列表一样网格,但是我无法将它们并排放置。

其次,如果最后一项是“单独”,我需要最后一项来填充两个空格。

有任何想法吗?

0 投票
1 回答
90 浏览

android - Android LinearLayoutManager and relocation on item removal

LinearLayoutManager provides a basic implementation for relocating items in the recycler. Assuming the following configuration in recyclerView:

E0 | E1 E2 E3 | E4

where | represents the effective bounds of recyclerView, a delete on E1 will result in the following final setting after all redrawing and animations:

E0 | E2 E3 E4 |

I need to accomplish a different behavior. Basically I want

| E0 E2 E3 | E4

a move of the other elements based on which part, left or right of the screen (relative to E2 in this case), I've made the delete. Basically the original center element must be taken as pivot for choosing which part to move.

Seems that this behavior is not easily achievable. Setting stackFromEnd doesn't resolve the problem because we have analog problem for removals on the opposite side. Also changing stackFromEnd value at runtime before effectively making the call to adapter.onItemRemoved doesn't resolve the problem.

0 投票
3 回答
557 浏览

android - RecyclerView with different spanCount for each row

Is there any way to get a RecyclerView with different spanCount for every row depends on how many items can fit in a row ? Meaning when there is no more width to fit new item, it will break into a new row.

I've attached a photo so you can see what I need.

If can't be done with RecyclerView, can it be done with TableLayout ? or a listView ?

enter image description here

0 投票
2 回答
2196 浏览

android - 根据设备格式更改 LayoutManager

我有一个带有卡片列表的 RecyclerView。我想知道是否可以在使用手机时将 RecyclerView 的 LayoutManager 更改为线性,在使用平板电脑时以编程方式将其更改为 StaggeredGrid。我最初的想法是在 Activity 上拥有相同的代码,并且只更改 layout.xml,但鉴于 Android 使用不同的 LayoutManager,它似乎比这更复杂。我也尝试使用 Cardslib 库,但对文档感到非常困惑,因为没有自定义卡片的完整示例。有任何想法吗?

0 投票
1 回答
264 浏览

android - 未触发 LinearLayoutManager prepareForDrop

我试图在拖放操作Recyclerview删除项目时抓住点,例如读出坐标。

认为该prepareForDrop事件LinearLayoutManager是正确的:

创建 LinearLayoutManager 并将其附加到 RecyclerView 并实现 prepareForDrop 事件的 Override。

问题是:prepareForDrop() 从来没有被调用过,但是为什么,有什么问题呢?

0 投票
3 回答
6713 浏览

android - 具有空指针异常的 RecyclerView

我从我的 CMS 中获取了一些新闻数据,并希望在 RecyclerView 中显示它们。问题是我在使用 LinearLayoutManager 的行中遇到空指针异常。这是 logcat 输出。

我正在做 web 服务部分的 Fragment 非常简单。我使用回调方法。我正在初始化 ArrayList 和 RecyclerView 的 onCreateView,其次是我正在运行 Web 服务的 onActivityCreate。

这部分代码会导致问题。

这很奇怪,因为我使用相同的技术在我的应用程序的另一个片段中获取数据。

有任何想法吗?

谢谢。

0 投票
0 回答
1542 浏览

android - RecyclerView 在 onLayoutChildren() 上重绘内容

我正在为 RecyclerView ( FlowLayoutManager ) 使用自定义 LayoutManager ,它工作正常,这是用于布置子级的函数:

唯一的问题是当我调用 notifyDataSetChanges() 或 notifyItemChanges() 时,它会再次调用 onLayoutChildren() 并且整个 recyclerview 正在更改它的内容并且它会滚动回顶部。

我试图了解 LinearLayoutManager 是如何控制这个问题的,但无法理解。

如何将 RecyclerView 保持在当前状态但只更改内容?或者我如何滚动到原来的位置?

0 投票
0 回答
1758 浏览

android - Android - NestedScrollView 内 RecyclerView 的性能问题

我有一个NestedScrollView在里面RecyclerView和一个RelativeLayout谎言在里面..

基本上是这样的

我正在使用CustomLinearLayoutManagerandrecyclerView.setNestedScrollingEnabled(false);来滚动两者RelativeLayoutRecyclerView一起滚动,否则,只会RecyclerView滚动,RelativeLayout只会停留在它上面。

每当RecyclerView加载新数据时,它会冻结 3-5 秒,这对用户体验非常不利。这就是CustomLayoutManager我正在使用的 ..

我实际上只是从另一个 SO 答案中复制的CustomLayoutManager,它可能是也可能不是问题..

0 投票
1 回答
1583 浏览

android - 滚动 | 总是输入折叠系统任务栏,而不是我的工具栏

我用它作为我的 XML 文件。我想在滚动时折叠工具栏,保持标签栏固定,但系统任务栏折叠,而不是工具栏。

这就是屏​​幕的样子 截屏

现在,如果我删除属性fitsSystemWindows="true",工具栏会正确折叠,但系统工具栏会变成完全白色。

正如 Uttam Panchasara 的回答所建议的那样,我将工具栏包含在 CollapsingToolbarLayout 中,现在这就是CollapsingToolbarLayout 之后的样子

我使用的 XML 文件是这个

0 投票
0 回答
1076 浏览

android - 带有 LinearLayoutManager 和预测动画的 RecyclerView

我正在使用垂直 LinearLayout 管理器和 DefaultItemAnimator 构建一个相对简单的 RecyclerView。它只会处理添加和删除项目(没有动画更改、交换、移动等)

我的项目将添加到列表中的特定位置,因为它按特定顺序排序,因此列表必须滚动到添加项目的位置才能显示给用户。

还有一个棘手的部分——LinearLayoutManager 和 DefaultItemAnimator 似乎不是为了支持预测动画而构建的。目前,由于滚动,所有出现的项目都是动画的,而不仅仅是新添加的项目,我想只在新项目上运行特定的动画。

首先,我在这里阅读了文档,其中说:

想要更好的项目动画体验的 LayoutManager,其中项目可以根据项目不在屏幕上时的存在位置在屏幕上和屏幕上进行动画处理,然后 LayoutManager 应该从 supportPredictiveItemAnimations() 返回 true并向 onLayoutChildren(回收商,州)

这是 的文档RecyclerView.LayoutManager,所以LinearLayoutManager作为一个孩子应该已经有了额外的逻辑(或者没有?)

问题是它的onLayoutChildren方法太复杂了,我不确定我应该修改哪个部分才能区分“出现在屏幕上”和“全新”视图。

我还阅读了本教程,它解决了我的确切问题,但该示例使用了 FixedGridLayoutManager,而且我发现理解和调整整个布局逻辑太复杂了。

我不是在寻找现成的复制粘贴解决方案,但我需要一些关于理解布局功能的线索。恐怕自己写一个,除了乏味之外,肯定会产生更糟糕的结果,因为里面已经有200行代码了,都是比我聪明的人写的^^

理想情况下,我想添加一些东西,或者做一些小的改动,以免破坏整个测量、报废、回收以及那里发生的任何其他复杂的事情。

在此先感谢,欢迎任何帮助