折叠布局行为在垂直视图寻呼机内不能正常工作

时间:2017-10-03 06:02:00

标签: android layout android-toolbar android-coordinatorlayout android-collapsingtoolbarlayout

查看寻呼机ScreenShot

enter image description here

  • 垂直视图寻呼机
    • First Fragment
    • 第二片段
      • 折叠工具栏
        • 图片视图
        • 标签布局
      • 查看寻呼机
        • 网格片段
        • 第二片段
          • Recycler View(Main)
            • Recycler View
        • 地图片段

当我滚动(主要)回收者视图时,折叠工具栏应该展开和折叠,垂直视图后,分页器应滚动。

但在我的代码(主要)中,Recycler视图无法正确滚动并且折叠工具栏无法正常工作。

XML:

<android.support.design.widget.CoordinatorLayout
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/MyAppbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/white">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapse_toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                app:layout_collapseMode="none">

                <TextView... />

                <ProfileView... />

            </LinearLayout>

            <android.support.v7.widget.Toolbar
                android:id="@+id/fragment_snip_details_2view"
                android:layout_width="match_parent"
                android:layout_height="@dimen/_40sdp"
                android:background="@color/colorAccent"
                android:minHeight="@dimen/_40sdp"
                app:layout_collapseMode="pin" />

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

        <TabLayout...>

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

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

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

    </LinearLayout>

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

1 个答案:

答案 0 :(得分:0)

将viewpager包裹在NestedScrollView而不是LinearLayout中,然后将NestedScrollView和ViewPager的layout_behavior设置为appbar_scrolling_view。永远拿走我,但我发现这对我有用。

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

    <com.example.ashleighwilson.schoolscheduler.views.CustomViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

    </com.example.ashleighwilson.schoolscheduler.views.CustomViewPager>

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

还请确保在NestedScrollView中将fillViewport设置为true,并确保宽度和高度设置为与父级匹配。这很重要。