解决ScrollView起始位置不是最顶部问题的3套方案


解决方法:

1. 在代码中获取该ScrollView的对象,然后加入如下代码:

        scrollview.setFocusableInTouchMode(true);
        scrollview.requestFocus();

下面的2和3方法是网上看到的,据说很有用,但是经本人测试均无效,也不能完全否定这两个方法,或许不适合我的代码环境,贴上。

2:如果嵌套了ListView,GridView 可以对获取焦点方面设置,在xml布局文件中对ListView或Gridview控件加入如下属性:

android:focusable="false"

或在运行代码中加入如下代码:

listView.setFocusable(false);

3:在运行代码中里面对scorllView进行设置:

scrollView.smoothScrollTo(0,0);

附加 ------ >  setFocusable()和setFocusableInTouchMode()的关系拓展:

setFocusable(true)只导致setFocusable(true)

setFocusableInTouchMode(true)导致setFocusable(true)和setFocusableInTouchMode(true)

setFocusableInTouchMode(false)只导致setFocusableInTouchMode(false)

setFocusable(false)导致setFocusable(false)和setFocusableInTouchMode(false)

发布了47 篇原创文章 · 获赞 184 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/ausboyue/article/details/52885463