Android,抽屉布局+;碎片+;折叠工具栏布局

Android,抽屉布局+;碎片+;折叠工具栏布局,android,navigation-drawer,android-toolbar,android-support-design,coordinator-layout,Android,Navigation Drawer,Android Toolbar,Android Support Design,Coordinator Layout,在抽屉布局的主容器中显示的片段中是否可能有一个CoordinatorLayout/CollingToolbar布局 另一个问题的答案是,每个片段都可以有自己的工具栏。但这不适用于,因为它需要一个工具栏来链接到打开/关闭抽屉行为 有没有人做到这一点,或者你对此有什么建议?谢谢 编辑:我一直在努力将一个工具栏放在抽屉布局中,本来打算一直呆在那里,但无法让它滚动(在Nexus5 API 22上)。其中提到,协调布局需要成为主视图。因此,将其插入抽屉布局(如下所示)可能不起作用 <android.

在抽屉布局的主容器中显示的片段中是否可能有一个CoordinatorLayout/CollingToolbar布局

另一个问题的答案是,每个片段都可以有自己的工具栏。但这不适用于,因为它需要一个工具栏来链接到打开/关闭抽屉行为

有没有人做到这一点,或者你对此有什么建议?谢谢

编辑:我一直在努力将一个工具栏放在
抽屉布局
中,本来打算一直呆在那里,但无法让它滚动(在Nexus5 API 22上)。其中提到,
协调布局
需要成为主视图。因此,将其插入抽屉布局(如下所示)可能不起作用

<android.support.v4.widget.DrawerLayout ...>

    <!-- main content -->
    <android.support.design.widget.CoordinatorLayout ...>

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

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

                <ImageView .../>

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

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

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

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

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

    <!-- navigation drawer -->
    <android.support.design.widget.NavigationView ...>

        <!-- drawer content -->
        <fragment .../>

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

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

这个布局适合我

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_gravity="left"
    android:layout_width="match_parent" android:layout_height="match_parent"
    tools:context=".BaseDrawerActivity"
    android:foregroundGravity="left">


<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".myapp">

    <android.support.design.widget.AppBarLayout
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

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

    <FrameLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

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


<!-- The drawer -->
<se.emilsjolander.stickylistheaders.StickyListHeadersListView
    android:id="@+id/drawer"
    android:layout_width="300dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:choiceMode="singleChoice"
    android:divider="@android:color/transparent"
    android:dividerHeight="0dp"
    style="@style/BaseStyle_Dark" />

这将允许您添加常用的协调器布局功能。

事实上,您可以。我一直在寻找同样的东西,你问题中的链接让我从

无论如何,下面是我的布局文件,至于java代码,我没有做任何更改,片段调用保持不变

activity_main.xml(主文件)


app_bar_main.xml(导航栏布局)


content_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context=".MainActivity"
    tools:showIn="@layout/app_bar_main">

    <FrameLayout
        android:id="@+id/content_main_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</android.support.v4.widget.NestedScrollView>


现在您有了“抽屉布局+碎片+折叠工具栏布局”

我也遇到了同样的问题,但我不需要
图像视图,因此我的解决方案如下:

<android.support.v4.widget.DrawerLayout
    android:id="@+id/drawer"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".MainActivity">

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

        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
        </android.support.design.widget.AppBarLayout>

        <FrameLayout
            android:id="@+id/container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:elevation="@dimen/toolbar_elevation"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
    </android.support.design.widget.CoordinatorLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/navigation"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header"
        app:menu="@menu/drawer_view"/>
</android.support.v4.widget.DrawerLayout>


希望有帮助

为什么您需要一个不同的工具栏,因为android允许片段从类内部修改工具栏。因此,我建议您修改片段内部的工具栏,而不是为每个片段使用不同的工具栏。。。这就是我现在要做的。我会让你知道这是一个很好的建议。不过,如果你能帮我适应我的情况,我会很高兴的。我还需要使用ViewPager来处理TabLayout。我用一个表格布局更改了CollapsedToolbar,这很好,但我不知道将ViewPager放置在何处,这样它就不会干扰框架布局。@iBobb你能给我你的布局文件(activity_main.xml、app_bar_main.xml和content_main.xml)吗?这样我就可以试试你的案例嘿,谢谢你的时间,我已经研究这个问题好几个星期了。您可以在我的单独问题中找到我的xml文件:我的ViewPager在那里不可见,因为现在它在我的主机片段的布局中(它加载在content\u main\u框架中)。但是,这样它就位于工具栏下。当我试着把它放在那3个布局文件中的某个地方时,它根本不可见。@iBobb很抱歉,我这个周末会检查它,我没能尽早检查它。别担心,我现在已经找到了一个解决方案,希望是最好的,所以现在一切正常。我把它贴出来作为我上面问题的答案。无论如何谢谢你!多亏了这个答案、android4devs NavigationDrawer教程和CodePath的NavigationDrawer教程,我最终成功地将导航栏+坐标布局+工具栏+片段+表格布局+AppBarLayout结合起来。
<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="192dp"
        android:theme="@style/AppTheme.AppBarOverlay">

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

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:layout_collapseMode="pin"
                app:layout_scrollFlags="scroll|enterAlways"
                app:popupTheme="@style/AppTheme.PopupOverlay" />
        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_main" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        android:src="@android:drawable/ic_dialog_email" />

</android.support.design.widget.CoordinatorLayout>
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context=".MainActivity"
    tools:showIn="@layout/app_bar_main">

    <FrameLayout
        android:id="@+id/content_main_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</android.support.v4.widget.NestedScrollView>
<android.support.v4.widget.DrawerLayout
    android:id="@+id/drawer"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".MainActivity">

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

        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
        </android.support.design.widget.AppBarLayout>

        <FrameLayout
            android:id="@+id/container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:elevation="@dimen/toolbar_elevation"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
    </android.support.design.widget.CoordinatorLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/navigation"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header"
        app:menu="@menu/drawer_view"/>
</android.support.v4.widget.DrawerLayout>