导航抽屉碎片影响工具栏的样式和定位

时间:2018-03-17 01:15:51

标签: android-layout android-studio android-fragments navigation-drawer android-toolbar

我正在拼命寻找我遇到的问题的帮助。所以我一直在关注this教程系列,它们非常棒,但与使用Bottom Navigation相比,他就像在视频中一样,我正在使用带有片段的“导航抽屉”。 / p>

当我在HomeFragment中选择NavigationDrawer时,布局会加载,但所有内容都会向下推到Toolbar以下。现在,工具栏功能齐全,因为汉堡包和更多选项菜单图标确实存在,但也是不可见的白色,因此它更像是一个设计问题。

此外,关于Toolbar's样式,是的,我已将其设为透明,以便完成的UI看起来像下面的“预期输出”图像。

预期输出 - 这是HomeActivity中与HomeFragment相对的相同布局。

以下是HomeActivity的代码,FrameLayout嵌套Fragments

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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="com.example.michaeldybek.plasticoceansapp.HomeActivity">

    <FrameLayout
        android:id="@+id/mainContainer"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="@id/toolbar"
        app:layout_constraintTop_toBottomOf="@id/toolbar">
    </FrameLayout>

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

</android.support.constraint.ConstraintLayout>

我已经在Toolbar类中声明并启动了HomeActivity,就像正常一样,当显示HomeActivityToolbar确实存在,这让我怀疑是否我必须在HomeFragment课程中再次申报?如果是这样,你会怎么做呢?

如果其他布局或类别需要任何其他代码,请离开。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

删除 android:background =&#34; @ null&#34; 或设置 android:background =&#34; @ color / colorPrimary&#34; in工具栏

答案 1 :(得分:0)

经过一周的坚实研究,我终于找到了绕过这个问题的解决方案!

我最终从Toolbar删除了FrameLayoutHomeActivity,而是创建了一个新的布局资源文件并将其称为&#34; app_bar.xml&#34; ,其中包含以下代码:

<RelativeLayout
    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.support.design.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".core.MainActivity">

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

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

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:elevation="0dp"
        android:stateListAnimator="@null">

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

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

</RelativeLayout>

然后,我使用app_bar标记在HomeActivity布局中加入include HomeActivity同时将NavigationView嵌套在{{1}内}})。

我希望这可以帮助任何人遇到这个问题。如果您有任何疑问,请随便询问!