当ScrollView下嵌套GridView或ListView时,如果内容超过一屏默认位置不在ScrollView的顶部,用scrollViewMsg.scrollTo(0,0)设置也不起作用,这是因为嵌套GridView或ListView获了焦点,解决方法有如下几种:
方法1: scrollView.fullScroll(ScrollView.FOCUS_UP);但是这样会有一个问题,就是页面会滚动一下.用户体验不是很好,而且必须要在ScrollView完全渲染到屏幕上调用才会生效:
//将ScrollView移动到原点
<span style="white-space:pre"> </span>scrollView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
scrollView.post(new Runnable() {
@Override
public void run() {
// scrollView.fullScroll(ScrollView.FOCUS_UP);
}
});
}
});
方法2:把ScrollView里的其他View获取焦点:
View.setFocusable(true);