Android透明状态栏和自定义视图插图

时间:2018-08-23 12:35:18

标签: android statusbar transparent windowinsets

我想在透明状态栏后面绘制布局。 我正在使用指挥的控制器来实现我的应用程序的屏幕,它们都具有白色状态栏,但是其中一个需要它是完全透明的。进入此控制器时,我不能使用windowTranslucentStatus标志,因为当控制器进入并存在屏幕时,它会使我的布局略微跳动。我认为自定义窗口插图可以帮助在状态栏后面绘制一个控制器,而不会跳转布局,但是我不知道该怎么做。有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

在布局的根视图中使用android:fitsSystemWindows="true"

fitsSystemWindows的作用是什么?

  

系统窗口是系统绘制非交互式(对于状态栏而言)或交互式(对于导航栏而言)内容的屏幕部分。   大多数情况下,您的应用无需在状态栏或导航栏下绘制,但如果这样做,则需要确保交互元素(如按钮)没有隐藏在它们的下方。这就是android:fitsSystemWindows =“ true”属性的默认行为:它设置了View的填充,以确保内容不会覆盖系统窗口。

Source

答案 1 :(得分:0)

为此,我建议您隐藏状态栏并启用全屏窗口。试试下面,它可以工作。

步骤1:在style.xml中创建主题

<style name="FullScreen" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

步骤2:在清单文件中应用活动主题,也可以在应用程序级别应用主题。例如,已添加活动级别。

<activity
    android:name=".MainActivity"
    android:theme="@style/FullScreen" />