为什么ViewPager不在RelativeLayout内滑动?

时间:2018-09-11 13:31:38

标签: java android android-layout kotlin android-viewpager

将“线性布局”更改为“相对布局”后,滑动更改无效。

此处是整个xml代码。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.view.ViewPager
        android:id="@+id/singleSlider"
        android:layout_width="match_parent"
        android:layout_height="@dimen/slider_height"
        android:background="@color/colorPrimaryDark" />

    <android.support.v4.widget.NestedScrollView
        android:id="@+id/singleScroll"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        ...

    </android.support.v4.widget.NestedScrollView>

</RelativeLayout>

可能有什么问题?

它不适用于框架布局。

有什么建议吗?

3 个答案:

答案 0 :(得分:4)

NestedScrollView现在位于ViewPager上方(z轴),因此ViewPager没有收到触摸事件。 添加

android:layout_below="@+id/singleSlider"

您的NestedScrollView

答案 1 :(得分:0)

我认为您使用 Linear Layout 之前,您的View-pager和NestedScrollView是重叠。因此它一一进行,但是现在在相对布局中它是重叠的。 使用 layout_below 属性

答案 2 :(得分:0)

现在,您的嵌套滚动视图和视图分页器只是两个相互重叠的独立事物,不确定您是否要在嵌套滚动视图中使用视图分页器,还是要在视图分页器内部使用嵌套滚动条,所以我将在嵌套滚动条中显示视图

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.widget.NestedScrollView
        android:id="@+id/singleScroll"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.v4.view.ViewPager
        android:id="@+id/singleSlider"
        android:layout_width="match_parent"
        android:layout_height="@dimen/slider_height"
        android:background="@color/colorPrimaryDark" />

    </android.support.v4.widget.NestedScrollView>

</RelativeLayout>

然后,当您调用滚动视图时

您还可以设置

android:fillViewport="true"
在嵌套滚动视图上

定义滚动视图是否应拉伸其内容以填充视口

如果这不是您想要的,您可以显示一个模型或显示您希望它如何运行的内容,我将相应地编辑答案