嵌套滚动视图自动滚动到底部
Nested scrollview automatically scrolls to bottom
我在 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();
}
在碎片之间滑动时调用以下系统方法:
如果我将 nestedScrollView.scrollTo(0, 0);
添加到 GridView 的 onLayoutChanged()
方法的末尾,问题就解决了。但是,首先阻止 nestedScrollView 自动滚动会更有意义。
想法?
在 NestedScrollView 的子布局中添加 android:descendantFocusability="blocksDescendants"
我在 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();
}
在碎片之间滑动时调用以下系统方法:
如果我将 nestedScrollView.scrollTo(0, 0);
添加到 GridView 的 onLayoutChanged()
方法的末尾,问题就解决了。但是,首先阻止 nestedScrollView 自动滚动会更有意义。
想法?
在 NestedScrollView 的子布局中添加 android:descendantFocusability="blocksDescendants"