协调布局不适用于选项卡布局

Coordination Layout Don't Work With Tab Layout

美好的一天,你能帮我改正这个吗? 在我的 activity_main.xml 中,我使用了 Coordination Layout 这样我的 Appbar 就可以工作了。

<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context="com.eccp.projects.ecosavers.ecosavers.activities.eco_detailed_information">

<!--COORDINATOR LAYOUT-->
<android.support.design.widget.CoordinatorLayout
    android:id="@+id/coordinator_layout"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:background="#ffffff">

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

        <include
            android:id="@+id/toolbar"
            layout="@layout/tool_bar"
            />

        <android.support.design.widget.TabLayout
            android:id="@+id/tablayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="?attr/colorPrimary"
            android:elevation="4dp"
            app:tabMode="fixed"
            app:tabGravity="fill"/>

        <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:layout_weight="1"
            android:background="#ffffff"/>
    </android.support.design.widget.AppBarLayout>


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

<android.support.design.widget.NavigationView
    android:id="@+id/navigation_view"
    android:layout_height="match_parent"
    android:layout_width="wrap_content"
    android:layout_gravity="start"
    app:headerLayout="@layout/header"
    app:menu="@menu/drawer"/>

在我的第一个选项卡中,我的 - 组织提要不起作用,它卡住了,我不允许向上滑动以显示提要。但有时它会向上滑动,但布局重叠。我只是将我的 cardview_items.xml 作为其外观的概述。

<RelativeLayout
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:fitsSystemWindows="true"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context="com.eccp.projects.ecosavers.ecosavers.activities.eco_detailed_information">

<!--COORDINATOR LAYOUT-->
    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:layout_gravity="fill_vertical"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical"
            android:layout_marginTop="1dp">

            <!--Dummy Value 1-->
            <include
                android:id="@+id/card_item"
                layout="@layout/eco_events_cardview" />

            <include
                android:id="@+id/card_item"
                layout="@layout/eco_events_cardview" />

        </LinearLayout>

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

我真的需要你的帮助。我坚持这个。 提前谢谢你。

修复应该相当容易:

  1. AppBarLayout
  2. 中删除 ViewPager
  3. ViewPager 作为同级添加到 AppBarLayout 并为其添加 app:layout_behavior="@string/appbar_scrolling_view_behavior" 并将 layout_width & layout_height 设置为 match_parent

所以你的布局之后应该是这样的:

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

        <include
            android:id="@+id/toolbar"
            layout="@layout/tool_bar"/>

        <android.support.design.widget.TabLayout
            .../>
    </android.support.design.widget.AppBarLayout>
    <android.support.v4.view.ViewPager
        .....
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>

希望对您有所帮助。