android-如何在不影响导航栏的情况下为状态栏设置渐变?

问题描述 投票:0回答:1

我正在尝试向状态栏添加渐变,这是我的代码:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

它在状态栏上的工具栏上移动,并用活动的内容覆盖导航栏,如下所示。我增大了工具栏的高度并解决了第一个问题,但是有什么办法可以防止此代码覆盖我的导航栏?

无论如何,有没有更好的方法可以在不更改工具栏高度的情况下向状态栏添加渐变?

enter image description here

android android-actionbar gradient android-statusbar
1个回答
0
投票

只需遵循以下操作,它将对您有效,就我而言,它可以正常工作

像波纹管一样进行布局

main_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.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:background="@mipmap/ic_launcher"
    android:fitsSystemWindows="true"
    tools:context=".SplashActivity">

    <androidx.appcompat.widget.AppCompatImageView
        android:layout_width="@dimen/_150sdp"
        app:layout_constraintEnd_toEndOf="parent"
        android:src="@drawable/cell_background"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_height="@dimen/_150sdp" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

和波纹管拖车标志

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

将波纹管主题应用于屏幕

<style name="AppThemeTrans" parent="Theme.AppCompat.DayNight.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@android:color/transparent</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="colorControlNormal">#FFFFFF</item>
        <item name="android:windowTranslucentStatus">true</item>
        <item name="android:statusBarColor">@android:color/transparent</item>
        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
        <item name="android:windowTranslucentNavigation">false</item>
        <item name="android:navigationBarColor">@color/navigationBarColor</item> <!--Change Navigationbar background color here-->
    </style>
© www.soinside.com 2019 - 2024. All rights reserved.