在Android开发过程中,我们有时会用ScrollView 嵌套 ListView或者RecyclerView,但当我们进入界面的时候看到的不是最顶部,而是ListView或者RecyclerView。
出现问题原因:
RecyclerView或者ListView从ScrollView中夺取了焦点,位置显示在焦点的位置去了,所以进去之后界面不在顶部,而是处于焦点位置。
解决方法:
方法1: 禁止RecyclerView或者ListView获取到焦点
方法2: 使ScrollView主动获取到焦点
代码展示:
1.代码中直接禁止RecyclerView的焦点
mRecyclerView.setFocusable(false);
2.ScrollView获取焦点,可以直接在跟布局中的ScrollView中添加
<ScrollView
<-------主要代码是下面两行------->
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="match_parent"
android:layout_height="match_parent">
...
...
</ScrollView>