7

我是新手,因为CoordinatorLayout我想coordinatorLayout在我的应用程序中使用它,但它会导致显示CollapsingToolbarLayout视图出现一些问题。

在此处输入图像描述

我想设计像whatsApp屏幕这样Tabs的视图Coordinatorlayout

我的 XML 代码

<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:fitsSystemWindows="true">

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


        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fitsSystemWindows="false"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginEnd="32dp"
            app:expandedTitleMarginStart="24dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">


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

                <android.support.v7.widget.Toolbar
                    android:id="@+id/toolbar"
                    android:layout_width="match_parent"
                    android:layout_height="?attr/actionBarSize"
                    app:layout_collapseMode="pin"
                    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

                </android.support.v7.widget.Toolbar>
            </LinearLayout>

         <android.support.design.widget.TabLayout
            android:id="@+id/tabanim_tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

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

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


    <android.support.v4.view.ViewPager
        android:id="@+id/tabanim_viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

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

        // child view

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

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

3 回答 3

14

我在 CoordinatorLayout 中找到了选项卡的解决方案

<?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/tabanim_maincontent"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/tabanim_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/tabanim_toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|enterAlways"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

        </android.support.v7.widget.Toolbar>

         /***
                   Here You can add custom layout
                 **/


        <android.support.design.widget.TabLayout
            android:id="@+id/tabanim_tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

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

    <android.support.v4.view.ViewPager
        android:id="@+id/tabanim_viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />


</android.support.design.widget.CoordinatorLayout>
于 2015-08-05T09:16:32.337 回答
1

CoordinatorLayout 有时很微妙,我建议您按照下一个示例使用它作为基础,并在需要时逐步添加更多复杂性:

https://gist.github.com/RicardAparicio/f41523daaa0edbe0b4399549fff4da3f

希望能帮助到你。

于 2019-05-04T23:07:17.577 回答
0

“但它会导致显示出现问题”并没有说明您遇到了什么样的问题,但很高兴您找到了解决方案。

在使用 fitSystemWindows="true" 时,CoordinatorLayout 中的 TabLayout 和 ViewPager 的 22.2.1 和 23.0.1 支持库确实存在问题。使用 RecyclerView 并将其向上滚动时 TabLayout 标题进入状态栏,而它的背景颜色没有被固定。

我可能只是暗示以上是您的问题之一,如果是,那么删除 fitSystemWindows 不是最好的解决方案,因为应用程序会失去很多它在 5.0+ Android 中的外观。

这也不是一个好的解决方案,但我设法通过添加嵌套的 android.support.design.widget.CoordinatorLayout 解决了这个问题,但如果你在那里使用 DrawerLayout,那么不需要任何东西,如本例所示:https ://github.com /克里斯班斯/奶酪广场

于 2015-09-29T12:39:49.293 回答