43

我在 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();
}

在片段之间滑动时会调用以下系统方法: 在此处输入图像描述

4

2 回答 2

187

添加android:descendantFocusability="blocksDescendants"到 NestedScrollView 中的子布局

于 2016-08-25T20:31:24.033 回答
1

如果我添加nestedScrollView.scrollTo(0, 0);到 GridView 方法的末尾,onLayoutChanged()问题就解决了。但是,首先防止nestedScrollView 自动滚动会更有意义。

想法?

于 2016-06-08T02:19:57.743 回答