在我的xml样式中,我在ScrollView中使用了android.support.v4.view.ViewPager。问题是我没有滚动条。当我从一个页面滑动到另一个页面时,ViewPager本身也表现得很奇怪。
将ScrollView设置为固定高度,例如1200dip有助于滚动但不显示ViewPager。 这是我的xml:
<?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>
提前致谢
答案 0 :(得分:1)
您没有获得滚动条的原因是因为ViewPager
(和RelativeLayout
)的高度设置为match_parent
而不是wrap_content
。这会使其与ScrollView
的尺寸相匹配,这种尺寸首先会破坏ScrollView
的目的。ScrollView
的内容应高于/高于您的ScrollView
RelativeLayout
本身。
总而言之,您应将ViewPager
的身高和wrap_content
的身高设置为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>
代替)。例如:
{{1}}
答案 1 :(得分:0)
答案 2 :(得分:0)
我有同样的问题,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;
}
});