问题标签 [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 投票
1 回答
396 浏览

android - RecyclerView LayoutManager - 即使不可见也强制保留视图

我在两个RecyclerView. 第一个类似于文件夹列表,将第一项显示为封面,单击它会打开一个新视图,显示文件夹内容,将封面设置为第一项。单击后退会将所有可见视图动画化回它们来自的文件夹(封面是最顶部的视图)。只要打开的文件夹显示第一项,这看起来就很棒。如果我向下滚动第一个项目将在屏幕外,并且后退动画看起来不再那么好,因为封面视图没有动画(我目前只为所有可见视图制作动画)。

我认为可行的方法如下:LayoutManager可以将第一个项目定位在屏幕外不久的位置,并将其作为特殊视图保存在它的池中,以便您始终可以访问第一个视图,当我动画回到文件夹视图时,我可以制作动画除了所有其他当前可见的项目之外的封面(封面将从屏幕顶部动画)。

这意味着我需要以下内容:

  • 必须将LayoutManager第一个项目作为未回收的特殊项目处理(我可能随时需要它用于后退动画)
  • 第一项必须始终布局(在列表中的默认位置,如果它是可见的或直接在屏幕上方的屏幕外),再次因为我可能随时需要它来制作后退动画

有人可以帮我从哪里开始吗?我认为这可以通过扩展来实现,LayoutManager但我不知道从哪里开始......

0 投票
1 回答
460 浏览

android - Recyclerview平滑滚动报错

我正在尝试使用线性布局管理器平滑滚动到 recyclerview 中的某个位置。

void smoothScrollToPosition(int position)

但是,它并不总是正常工作。有时,它会将我带到列表的底部,在日志中,我收到以下错误消息

Passed over target position while smooth scrolling

我在 SO 中找到了这个线程。但是,答案并没有解释为什么会出现错误,它有解决问题的解决方案。很长一段时间以来,我一直试图弄清楚这一点。有人可以解释什么时候会抛出这个错误吗?

0 投票
4 回答
4650 浏览

android - LinearLayoutManager 平滑滚动跳转到错误的位置

我正在尝试制作类似于 Instagram 过滤器布局的布局。基本上,当您选择一个过滤器时,它会滚动到您选择的项目 + 1,向您显示还有更多过滤器。

我目前正在尝试在这里LinearLayoutManager为我的水平建立一个自定义RecyclerView

向左滚动按预期工作,但是当我向右滚动时,它似乎只是跳到列表的末尾而不是 newItem + 1,我不知道为什么会发生这种情况。

在此处输入图像描述

0 投票
5 回答
7257 浏览

android - Android LinearSnapHelper - 如何提高滚动/“捕捉”速度?

我正在使用 aLinearSnapHelper将我的RecyclerView“卡”中的项目在屏幕上放置到位(我的卡片占据了屏幕的大部分,所以我希望它们卡到位并在每次滑动/甩动/滚动时填满屏幕)。

我正在为如何让卡片更快地卡入到位而苦苦挣扎。我尝试过创建自定义LinearLayoutManager(并calculateSpeedPerPixelscrollToPositionor中编辑方法smoothScrollToPosition)以及自定义RecyclerView(并编辑 fling 方法)。但没有什么影响卡片“卡入”到位的速度。

我想问题是我真的不明白如何LinearSnapHelper将卡片“滚动”到位。它似乎没有使用LinearLayoutManager'sscrollToPositionsmoothScrollToPosition方法。

0 投票
1 回答
514 浏览

android - 无法将 LinearLayoutManager 转换为 GridLayoutManager

上面的代码崩溃说 java.lang.ClassCastException: android.support.v7.widget.LinearLayoutManager cannot be cast to android.support.v7.widget.GridLayoutManager

我发现下面的行导致崩溃

避免崩溃的解决方案是什么

mLayoutManager 被声明为 LinearLayoutManager

0 投票
1 回答
662 浏览

android - 具有回收器视图的线性布局管理器不反转

对于聊天应用程序,我想要一个带有反向项目和布局的回收站视图。从理论上讲,这应该颠倒布局和堆叠顺序,但问题是一次只能工作一个。如果我使用反向布局,它会正确地放在底部,但不会颠倒堆叠顺序。因此,基本上一次只有一种期望的行为起作用,但不能同时起作用。

0 投票
5 回答
10179 浏览

android - 如何滚动到scrollview内recyclerview中的特定位置?

我对我的查询进行了很多搜索,但没有一个有用。我在根父布局内的滚动视图中有一个 recyclerview 和一些静态数据,如下所示。

我已经设定 -

因为每次我打开活动时,它都会跳转到 recyclerview firstitem,它会跳过 recyclerview 上方的静态数据。

用于平滑滚动。

问题在于——

它不工作。在将适配器设置为 recyclerview 后,我已经设置了上述行。也尝试使用 NestedScrollView 但徒劳无功。

虽然我用过

对于那些跳过代码的人,我将 match_parent 设置为 ScrollView 并将 fillviewport 设置为 true。

这是我的布局。

0 投票
1 回答
963 浏览

android - Recyclerview findLastCompletelyVisibleItemPosition 不正确?

既然我addData,并且调用了notifyDataSetChanged(),那么我立即使用findLastCompletelyVisibleItemPosition方法,结果不正确。然后我使用postDelay,结果就正确了,为什么会这样?我怎么知道数据是否完全添加?

0 投票
2 回答
111 浏览

android - Recyclerview 无法控制视图

我使用的是RecyclerView水平LinearLayoutManager的。我每个视图显示 3 个项目并使用无限滚动。我的问题是它们是 3 张图像,我希望将中间图像放大 2 倍,但我无法控制控制器来解决这个问题,有没有办法做到这一点?

例如)[] [] [] = 一个视图,但中间的一个将是 2X 大小,用户可以左右滚动

代码片段:这是我在活动中初始化适配器的方式:

适配器:

0 投票
0 回答
570 浏览

android - 如何使用 HORIZONTAL LinearLayoutManager scrollToPosition RecyclerView

此代码按预期工作:

定位和滚动是垂直的,显示第三项。

现在,如果在上面的代码VERTICAL中替换为HORIZONTAL,项目将水平显示并且滚动是水平的(如预期的那样),但setScrollToPosition(2)不再起作用。

如何scrollToPosition搭配HORIZONTAL LinearLayoutManager

下面提到了我的 XML 文件: