7

我有一個NestedScrollView內的GridView。每當GridView的內容發生更改時,我都使用下面的代碼來調整GridView的大小。這工作正常,但是當我從應用程序的片段3劃回片段2(NestedScrollView所在的位置)時,NestedScrollView會滾動到最底部。當從片段1滑動到片段2時奇怪,這不會發生。它也不會在調整GridView大小後立即發生。嵌套滾動視圖自動滾動到底部

我怎樣才能壓制NestedScrollView從滾動到底部? enter image description here

+0

試試這個http://stackoverflow.com/a/36261638/1621111 –

回答

50

添加android:descendantFocusability="blocksDescendants"孩子佈局NestedScrollView

+1

你在開玩笑吧?這實際上工作!非常感謝。 –

+1

令人難以置信的是,這個技巧最終解決了我們在相當長一段時間內遇到的許多小UI故障。我們在各種屏幕上有很多級別的嵌套回收器/滾動視圖,這1條線最終幫助我們理解了這個問題。 –

+0

英雄!我一直在尋找這個解決方案很長一段時間!難以置信的是這很容易!謝謝! – romaneso

1

如果我添加nestedScrollView.scrollTo(0, 0);到GridView問題得到解決的onLayoutChanged()方法的末尾:片段之間滑動時

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首先自動滾動會更有意義。

想法?