ViewPager在活动中的片段中

时间:2016-05-03 23:16:53

标签: android android-fragments android-viewpager android-collapsingtoolbarlayout

我有一个导航抽屉活动(NavActivity.java),它有一个带有recyclerView的片段(HomeFrag)。当用户从recyclerView中选择一个项目时,它会用当前片段替换当前片段(itemFrag,其中包含一个ViewPager)。这个ViewPager根本没有出现!

<android.support.design.widget.CoordinatorLayout 
                                             android:layout_width="match_parent"
                                             android:layout_height="match_parent"
                                             android:fitsSystemWindows="true">

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

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        app:layout_scrollFlags="scroll"
        app:contentScrim="?attr/colorPrimary">


        <com.android.volley.toolbox.NetworkImageView
            android:id="@+id/nivSplash"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            android:scaleType="fitXY"
            app:layout_collapseMode="parallax"/>

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fitsSystemWindows="true"
            android:padding="@dimen/activity_vertical_margin"
            app:layout_collapseMode="parallax">

            <com.android.volley.toolbox.NetworkImageView
                android:id="@+id/nivIcon"
                android:layout_width="96dp"
                android:layout_height="96dp"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_marginEnd="@dimen/activity_vertical_margin"
                android:layout_marginRight="@dimen/activity_vertical_margin"
                android:background="@mipmap/splash_land"
                android:scaleType="fitXY"/>

            <TextView
                android:id="@+id/tvName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@id/nivIcon"
                android:background="#AA000000"
                android:textSize="16sp"
                android:textStyle="bold"/>

            <TextView
                android:id="@+id/tvTitle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/tvName"
                android:layout_toRightOf="@id/nivIcon"
                android:background="#AA000000"/>

            <TextView
                android:id="@+id/tvRole"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@id/nivIcon"
                android:layout_toRightOf="@id/nivIcon"
                android:background="#AA000000"/>

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

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

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

            <android.support.v4.view.PagerTitleStrip
                android:id="@+id/pager_title_strip"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="top"
                android:background="@color/colorPrimaryTransparent"
                android:paddingBottom="4dp"
                android:paddingTop="4dp"
                android:textColor="#fff"/>

        </android.support.v4.view.ViewPager>
    </LinearLayout>

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

itemFrag.java:

onCreateView() {
    contentView = Inflater.inflate...;
    mViewPager = (ViewPager) contentView.findViewById(R.id.pager);
    mViewPager.setAdapter(mSectionsPagerAdapter);
    mViewPager.setCurrentItem(0);
}
...
...
SectionPagerAdapter extends FragmentStatePagerAdapter

1 个答案:

答案 0 :(得分:1)

我认为不需要NestedScrollView。如果要在折叠工具栏下显示可垂直滚动的内容,则应该只需要它。

由于您似乎只有ViewPager,请尝试此

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

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

    <android.support.v4.view.PagerTitleStrip
        android:id="@+id/pager_title_strip"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:background="@color/colorPrimaryTransparent"
        android:paddingBottom="4dp"
        android:paddingTop="4dp"
        android:textColor="#fff"/>

</android.support.v4.view.ViewPager>

<!-- end of layout -->