带有工具栏的Android CoordinatorLayout会切断状态栏,只是没有完全隐藏

时间:2016-07-08 08:25:14

标签: android toolbar android-coordinatorlayout

我一直使用 drawerLayout 作为我的根布局。在内部,我使用了CoordinatorView与显示/隐藏工具栏的协调器布局。

所以现在tollbar scroll与recyclerView一起运行良好,但它只隐藏了一半的工具栏。 我见过许多类似于这个问题的问题,但没有什么能帮到我的事业。

我在下面附上了截图。

activity_main

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 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:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">

    <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="zot.com.myapplication.MainActivity">

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

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

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

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_main"
        app:menu="@menu/activity_main_drawer" />

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

m_toolbar

<android.support.design.widget.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/app_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/tool_bar">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@color/colorPrimary"
        android:elevation="4dp"
        app:layout_scrollFlags="scroll|enterAlways|snap">

        <TextView
            android:id="@+id/toolbar_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:paddingLeft="10dp"
            android:text="Toolbar Title"
            android:textColor="@color/white"
            android:textSize="22dp" />


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

Activiy主题

<resources>

    <style name="AppTheme" parent="AppTheme.Base">
        <item name="android:windowContentTransitions">true</item>
        <item name="android:windowAllowEnterTransitionOverlap">true</item>
        <item name="android:windowAllowReturnTransitionOverlap">true</item>
        <item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
        <item name="android:windowSharedElementExitTransition">@android:transition/move</item>
        <!--<item name="android:windowTranslucentStatus">true</item>-->

        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
        <item name="android:statusBarColor">@android:color/transparent</item>
        <item name="android:windowTranslucentStatus">true</item>
    </style>

    <!-- Base application theme. -->
    <style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorPrimaryDark</item>
        <item name="android:windowTitleStyle">@color/textColorPrimary</item>
        <item name="android:divider">@color/divider</item>
        <item name="android:actionBarDivider">@color/divider</item>
        <item name="windowActionModeOverlay">true</item>
        <item name="actionModeStyle">@style/ActionMode</item>
        <item name="actionOverflowMenuStyle">@style/drop_down_menu</item>
    </style>

</resources>

滚动前的工具栏

Toolbar before scroll

完成滚动后的工具栏 - &gt;不要完全隐藏工具栏

Toolbar after finished scroll -> not hides the toolbar fully

滑块看起来不错

[![滑块看起来不错] [3]] [3]

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

 <style name="AppTheme" parent="Base.Theme.MaterialDesign">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:colorPrimary">@color/colorPrimary</item>
    <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="android:colorAccent">@color/colorAccent</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
</style

而不是NoActionBar主题使用Material设计主题并指定windowActionBar和windowNoTitle值。 这可能会导致您的风格出现问题。