开发中遇到在ScrollView中的子布局包含ListView或者RecyclerView的时候
ScrollView会自动滚动到底部。
解决办法:
1:获取ScrollView里面一个上层任意view,然后调用如下方法:
view.setFocusable(true);
view.setFocusableInTouchMode(true);
view.requestFocus();
2:
将scrollview包裹的内容设置上以下两个属性
android:focusable="true"
android:focusableInTouchMode="true"
如下
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:focusable="true" android:focusableInTouchMode="true" android:background="@color/white"> <ImageView android:id="@+id/square_yuer_img" android:layout_width="328dp" android:layout_height="184dp" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:scaleType="fitXY" android:layout_marginTop="20dp"/> <android.support.v7.widget.RecyclerView android:id="@+id/square_yuer_recycler" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/white" android:paddingStart="16dp" /> </LinearLayout> </ScrollView> </LinearLayout>