Android ScrollView嵌套Viewpager嵌套ListView切换时到顶部或位置改变问题解决
好了,思想+代码
Activity:
android:focusable="true"
android:focusableInTouchMode="true"
例:
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:focusable="true"
android:focusableInTouchMode="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="183dp">
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="183dp"
android:layout_centerInParent="true">
</android.support.v4.view.ViewPager>
......省略
Fragment:
android:focusable="true"
android:focusableInTouchMode="true"
在Fragment里面,除了将这个和Activity里面一样外,还要在代码里面添加listview.setFocusable(false);这个属性。
例:
protected void setOnPageSelected(int position) {
if (position==0){
if (list!=null)
list.setFocusable(false); thisText.setTextColor(getResources().getColor(R.color.black_gray));
one.setTextColor(getResources().getColor(R.color.red));
thisText=one;
}
......省略
这样做的原因是让listview的父类抢到焦点,不能listview获取到焦点然后改变位置。