Android 滚动视图中的ViewPager无滚动条
在我的xml风格中,我在ScrollView中使用android.support.v4.view.ViewPager。问题是我没有滚动条。当我从一页滑到另一页时,ViewPager本身的行为也很奇怪 将ScrollView设置为固定高度,例如1200dip有助于滚动,但不会显示ViewPager。 以下是我的xml:Android 滚动视图中的ViewPager无滚动条,android,xml,Android,Xml,在我的xml风格中,我在ScrollView中使用android.support.v4.view.ViewPager。问题是我没有滚动条。当我从一页滑到另一页时,ViewPager本身的行为也很奇怪 将ScrollView设置为固定高度,例如1200dip有助于滚动,但不会显示ViewPager。 以下是我的xml: <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fadeScrollbars="true"
android:fillViewport="true"
android:scrollbars="vertical" >
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/menu"
/>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</android.support.v4.view.ViewPager>
</RelativeLayout>
</ScrollView>
提前感谢您没有获得滚动条的原因是您的
查看页面
(和相对长度
)的高度设置为匹配父项
,而不是包装内容
。这会使它与滚动视图的尺寸相匹配,这首先会破坏滚动视图的用途。。ScrollView
的内容应该比ScrollView
本身高
总之,您应该将相对页面的高度和查看页面的高度都设置为环绕内容
。此外,您没有设置希望RelativeLayout
的子项出现的顺序/位置;您可能需要更改此设置(或者改用LinearLayout
)。例如:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fadeScrollbars="true"
android:fillViewport="true" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/menu" />
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</ScrollView>
找到了解决方案–
我遇到了与ViewPager行为怪异相同的问题,我发现了原因,这是因为有时ScrollView重新获得焦点,而ViewPager随后失去焦点。如果您在ScrollView中有一个ViewPager,并且您希望它始终保持在焦点位置,当您触摸它时,ScrollView永远不会获得焦点,那么这就可以做到
mViewPager= (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(adapter);
mViewPager.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
mViewPager.getParent().requestDisallowInterceptTouchEvent(true);
return false;
}
});
我复制了你的xml,但它也没有滚动。我认为scrollView中的ViewPager存在一个基本问题?是的,正如您在上面提供的链接中所说的,您可以通过扩展scrollView
并覆盖它的onInterceptTouchEvent(…)
-方法来解决这个问题。你应该为自己的帖子提供答案并接受它。找到解决方案发布您问题的答案并验证您自己的答案。我觉得这个问题还没有解决,所以在浏览这一页时浪费了时间。谢谢。这个问题是针对viewpager的,下面是我的最佳解决方案链接。