ScrollView嵌套了ListView或者GridView时,ListView等子View有时候会抢占焦点,导致ScrollView会自动滑动至其已获取焦点的子控件的顶部。
解决方法:
可以手动scrollTo()或者smoothScrollTo()。
觉得上面方法不好玩不爽的话,那就重写ScroolView的computeScrollDeltaToGetChildRectOnScreen方法,将返回值设为0,使ScrollView内布局产生变化时,不会正确滚动到focus child位置。
/**
* 解决嵌套listview gridview抢占焦点 显示的问题
* @param rect
* @return
*/
@Override
protected int computeScrollDeltaToGetChildRectOnScreen(Rect rect) {
//禁止scrollView内布局变化后自动滚动
return 0;
}
本文介绍了解决ScrollView嵌套ListView或GridView时出现的焦点问题。当子View获取焦点时,ScrollView可能会自动滚动到该子View的顶部。文中提供了一种通过重写computeScrollDeltaToGetChildRectOnScreen方法来解决此问题的方法。
577

被折叠的 条评论
为什么被折叠?



