5

我正在尝试实现一个主题,该主题具有完全透明的操作和状态栏以及不透明的导航栏。基本上看起来类似于Google 的 Material Design 网站上给出的示例。

在此处输入图像描述

这是我为创建一个非常接近的主题而编写的一些 XML 代码 -

 <style name="MyTheme.Transparent" parent="android:Theme.Material.Light.DarkActionBar">
    <item name="android:windowTranslucentStatus">true</item>
    <item name="android:windowTranslucentNavigation">false</item>

    <item name="android:colorPrimary">@android:color/transparent</item>
    <item name="android:colorPrimaryDark">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowActionBarOverlay">true</item>

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

但是,正如您在此图像中看到的那样,内容显示在底部导航栏的后面。在期望用户垂直滚动的设计中,这会很好,但是,我不想这样做!我希望所有内容都适合而不需要任何滚动。

我想我可以添加一个简单的

android:layout_alignParentBottom="true"

在 XML 布局中最底部的视图上将其向上推。但这不起作用!相反,它与导航栏的底部对齐,这不是我想要的 - 它应该与它的顶部对齐。

然后我想我可以从底部做某种边距偏移,但是导航栏似乎不存在类似于 ?attr/actionBarSize 的属性。我想避免选择任意值(尤其是因为这些值因方向而异,并且将来可能会发生变化)

在主题中,我知道您可以添加 -

<item name="android:fitsSystemWindows">true</item>

哪种方法可以做到这一点(至少对于导航栏),但是图像将被推到操作栏下方。似乎我能够为导航栏或操作栏获得所需的结果,但不能同时获得两者。就好像谷歌甚至不希望人们这样做,但他们已经在 Material 网站上给出了这个例子。

有没有办法解决这些问题?

4

0 回答 0