ViewPager中的持久标头布局

时间:2015-09-02 02:33:20

标签: android android-layout android-fragments android-activity android-xml

我有一个可以滑动到3个不同页面的ViewPager。所有3个页面都应具有完全相同的标题。

有没有办法在所有3个页面上保留相同的标题,这样当我滑到另一个页面时,标题不会移动/更改,但其余内容会这样做?

这是我的ViewPager布局:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:fitsSystemWindows="true">

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />

</LinearLayout>

这是我在ViewPager上面加载的标题布局:

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="User"
        android:layout_gravity="center_vertical" />

</LinearLayout>

以下是我如何给标题充气:

final ListView listView = (ListView) view.findViewById(R.id.listview);
View header = inflater.inflate(R.layout.header, listView, false);
listView.addHeaderView(header, null, false);

1 个答案:

答案 0 :(得分:0)

只需将标题保留在视图寻呼机之外。对viewpager使用layout_weight,以便占用整个可用空间。

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:fitsSystemWindows="true">

    <LinearLayout
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="User"
            android:layout_gravity="center_vertical" />

    </LinearLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"/>

</LinearLayout>