【问题标题】:How to make the navigation bar transparent如何让导航栏透明
【发布时间】:2013-11-01 18:25:09
【问题描述】:

如何在 Android 4.4.X 及更高版本上使导航栏透明?

我在文档中进行了搜索,但没有找到任何相关内容。

【问题讨论】:

    标签: android android-4.4-kitkat


    【解决方案1】:

    我从Android KitKat (4.4) 的更改日志中获取了这个:

    半透明系统栏

    您现在可以使用新主题 Theme.Holo.NoActionBar.TranslucentDecorTheme.Holo.Light.NoActionBar.TranslucentDecor 使系统栏部分半透明。通过启用半透明系统栏,您的布局将填充系统栏后面的区域,因此您还必须为不应被系统栏覆盖的布局部分启用fitsSystemWindows

    如果您要创建自定义主题,请将这些主题之一设置为父主题或在您的主题中包含 windowTranslucentNavigationwindowTranslucentStatus 样式属性。

    希望这有助于您入门。

    【讨论】:

    • 其实如果你在主题中使用fitSystemWindows为true,你可能会影响到其他视图,比如toasts和dialogs,看这个答案code.google.com/p/android/issues/detail?id=63653
    • 根据答案,上面写的是正确的。 “fitsSystemWindows 用于您的布局中不应被系统栏覆盖的 部分。”并在答案中:“您应该只在 您的布局中的视图 或您明确应用于布局中的视图的样式中指定 fitSystemWindows,而不是在主题上。”
    • Nexus 10 在 4.4.4 中不支持它。沉浸式模式具有通常的透明度,但在显示“真实”状态和导航时会忽略 TRANS_STATUS 和 TRANS_NAV
    【解决方案2】:

    我通过在我的 styles.xml 中创建自定义主题来使用你的 trevor-e 的答案

    <style name="Theme.HomeScreen" parent="android:Theme.Holo.NoActionBar.TranslucentDecor">
     <item name="android:windowBackground">@android:color/transparent</item>
                 <item name="android:windowNoTitle">true</item> 
            </style>
    

    然后你可以从清单中设置主题

    <activity
                android:name="MyActivity" 
                android:launchMode="singleTask"
                android:screenOrientation="portrait"
                android:theme="@style/Theme.HomeScreen" >
         </activity> 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-27
      • 2018-09-21
      • 2018-10-13
      • 2021-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多