嵌套滚动视图自动滚动到底部
Posted
技术标签:
【中文标题】嵌套滚动视图自动滚动到底部【英文标题】:Nested scrollview automatically scrolls to bottom 【发布时间】:2016-10-08 02:05:23 【问题描述】:我在 NestedScrollView 中有一个 GridView。每当更改 GridView 的内容时,我都使用下面的代码来调整 GridView 的大小。这很好用,但是当我从应用程序的片段 3 滑回片段 2(NestedScrollView 所在的位置)时,NestedScrollView 会滚动到最底部。奇怪的是,从片段 1 滑动到片段 2 时不会发生这种情况。它也不会在调整 GridView 的大小后直接发生。
如何阻止 NestedScrollView 滚动到底部?
private static void resizeGridView(GridView gridView, int items, int columns)
ViewGroup.LayoutParams params = gridView.getLayoutParams();
params.height = singleGridHeight * items;
gridView.setLayoutParams(params);
gridView.requestLayout();
在片段之间滑动时会调用以下系统方法:
【问题讨论】:
试试这个***.com/a/36261638/1621111 【参考方案1】:在 NestedScrollView 的子布局中添加android:descendantFocusability="blocksDescendants"
【讨论】:
你在开玩笑吗?这确实有效!非常感谢。 难以置信,这个技巧最终解决了我们已经经历了很长一段时间的 许多 小 UI 故障。我们在各种屏幕中都有很多层次的嵌套回收器/滚动视图,这 1 行终于帮助我们理解了问题。 英雄!我一直在寻找这种解决方案很长时间!令人难以置信的是,这很容易!谢谢! EditText 在此之后无法聚焦 像魅力一样工作!!!,只是添加了一件事,添加上述解决方案后,EditText 将不会集中在 EditText 触摸侦听器上,只需添加 yourChildView.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS); .您的 EditText 将获得焦点。【参考方案2】:如果我将 nestedScrollView.scrollTo(0, 0);
添加到 GridView 的 onLayoutChanged()
方法的末尾,问题就解决了。但是,首先阻止nestedScrollView 自动滚动会更有意义。
想法?
【讨论】:
以上是关于嵌套滚动视图自动滚动到底部的主要内容,如果未能解决你的问题,请参考以下文章
使用Android ViewPager2在回收器视图中滚动到底部时自动更改选项卡项