ViewPager顶部的可滚动布局

时间:2016-07-12 20:59:04

标签: android xml layout android-viewpager scrollable

我正在使用AppBar创建一个应用程序,并在此下面创建一个(相对)布局。

与Facebook Messenger一样:

enter image description here

你可以在AppBar下面看到一个带有三个按钮的布局(TOUS,MESSENGER,SMS)。

当我滚动时,我的布局包括三个按钮不会移动,它会保持"固定"在同一位置(在上面)。我的目标是使带有thress按钮的布局在AppBar后面传递,并且不会留在视图中。

这是我的实际代码:

<?xml version="1.0" encoding="utf-8"?>

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            app:layout_scrollFlags="scroll|enterAlways|snap" />

        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            app:tabIndicatorColor="@color/fullWhite"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </android.support.design.widget.AppBarLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:background="@color/background_grey_white">

        <!-- These part has to scroll and pass behind the AppBar when the user is scrolling, but it does not work at the moment, it stays "pinned" at the top of the screen -->
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="13sp"
            android:id="@+id/content_frame">
            <include layout="@layout/tous_messenger_sms"/>
        </RelativeLayout>

        <android.support.v4.view.ViewPager
            android:id="@+id/viewpager"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/separator_color"/>
    </LinearLayout>

</android.support.design.widget.CoordinatorLayout>

我需要做些什么才能让它发挥作用?

有人能帮助我吗?谢谢!

1 个答案:

答案 0 :(得分:1)

只需将 RelativeLayout 移动到 ViewPager 的第一个元素的布局中。通过这种方式,当您滑动时, RelativeLayout 中的元素将消失,因为当前标签已更改。