具有windowTranlucentStatus和windowTranslucentNavigation的fitSystemWindows使工具栏过高

时间:2018-10-21 00:32:14

标签: android

我正在尝试在状态栏和导航栏下使我的应用程序出血。我使用fitSystemWindows = true使布局可以工作,而状态栏只是半透明的,但是当我也使导航栏出现时,工具栏似乎会做出反应,好像它需要填充在状态栏和通知栏下一样。 The toolbar appears to function normally when in landscape for some reason. 这种双重“半透明”的条形效果还使NestedScrollView扩展到页面底部之外。我也不确定如何使FAB合适。

另一方面,我最初使用CoordinatorLayout编写布局。这就增加了一个额外的问题,即NestedScrollView然后向上滚动到工具栏应该位于的底部,而不是它所在的位置。不过,我认为NestedScrollView通过CoordinatorLayout正确地尊重了屏幕的底部边界。

这是布局的xml:

<?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.support.constraint.ConstraintLayout
        android:id="@+id/constraint"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.v4.widget.NestedScrollView
            android:id="@+id/nested_scroll_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_constraintTop_toBottomOf="@id/toolbar">

            <LinearLayout
                android:id="@+id/parent"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="#00000000"
                android:clipToPadding="false"
                android:orientation="vertical"
                android:paddingBottom="74dp"/>

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

        <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_constraintTop_toTopOf="parent"
            android:background="@color/nav_color_1_bright"
            android:elevation="4dp"
            android:fitsSystemWindows="true"

            app:navigationContentDescription="@string/open_nav_menu"
            app:navigationIcon="@drawable/ic_dehaze_white_24dp"/>


        <android.support.design.widget.FloatingActionButton
            android:id="@+id/fab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            android:layout_margin="16dp"
            android:clipToPadding="false"
            android:fitsSystemWindows="true"
            android:onClick="createNew"
            android:src="@drawable/ic_add_black_24dp"
            app:backgroundTint="@color/darkAccent"
            app:fabSize="normal" />

    </android.support.constraint.ConstraintLayout>

    <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:itemBackground="@drawable/nav_item">

        <ListView
            android:id="@+id/drawer_list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:divider="@null"
            android:dividerHeight="0dp"
            android:fitsSystemWindows="true" />
    </android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>

我以编程方式将以下“浅色主题”应用于“活动”。

<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowTranslucentStatus">true</item>
    <item name ="android:windowTranslucentNavigation">true</item>
</style>

<style name="LightTheme" parent="AppTheme">
    <item name="android:colorPrimary">@color/lightPrimary</item>
    <item name="android:colorPrimaryDark">@color/lightPrimaryDark</item>
    <item name="android:colorAccent">@color/lightAccent</item>
    <item name="android:navigationBarColor">@color/lightPrimaryDark</item>
    <item name="actionOverflowButtonStyle">@style/OverflowMenuButtonStyleDark</item>
</style>

以下是布局的预览:(更大版本here

Toolbar goes under status bar and thinks it needs to go under navigation as well

0 个答案:

没有答案