解决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)
© 版权声明
THE END
喜欢就支持以下吧
点赞0赞赏 分享
评论 抢沙发
图片正在生成中,请稍后...