Android ScrollView 不在最顶部问题
Android About 724 words场景
开发中遇到了这样的一个问题,界面最外层是ScrollView,然后里面有嵌套了一个ListView还有其他可以获取焦点的View,然后每次打开界面都会自动滚动到最底部,经过一番折腾,发现了一个简单的方法:
方法1
获取ScrollView里面一个上层任意view,然后调用如下方法:
view.setFocusable(true);
view.setFocusableInTouchMode(true);
view.requestFocus();
方法2(推荐)
在xml中配置,注意,是给ScrollView的子View配置
android:focusable="true"
android:focusableInTouchMode="true"
方法3
scrollView.fullScroll(ScrollView.FOCUS_DOWN);滚动到底部
scrollView.fullScroll(ScrollView.FOCUS_UP);滚动到顶部
需要注意的是,该方法不能直接被调用。
因为Android很多函数都是基于消息队列来同步,所以需要一部操作,addView完之后,不等于马上就会显示,而是在队列中等待处理,虽然很快,但是如果立即调用fullScroll,view可能还没有显示出来,所以会失败。 应该通过handler在新线程中更新
handler.post(new Runnable() {
@Override
public void run() {
scrollView.fullScroll(ScrollView.FOCUS_DOWN);
}
});
Views: 3,512 · Posted: 2019-04-09
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...