Android 滚动视图中的ViewPager无滚动条

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风格中,我在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>


提前感谢

您没有获得滚动条的原因是您的
查看页面
(和
相对长度
)的高度设置为
匹配父项
,而不是
包装内容
。这会使它与
滚动视图的尺寸相匹配,这首先会破坏
滚动视图的用途。。
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的,下面是我的最佳解决方案链接。