首页 > 解决方案 > 带有nativescript的android上的状态栏透明

问题描述

我想知道如何使用 Nativescript 在 Android 上将状态栏设置为透明?

我读了很多帖子(How do I create a transparent Activity on Android?, https://blog.mindorks.com/how-to-create-a-transparent-activity-in-android ...)但状态栏是总是灰色或不透明。

在 values/styles.xml 我添加了这个:

<style name="Theme.AppCompat.Transparent.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>
</style>

在 AndroidManifest.xml 中

<activity
            android:name="com.tns.NativeScriptActivity"
            android:label="@string/title_activity_kimera"
            android:configChanges="keyboard|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout|locale|uiMode"
            android:theme="@style/Theme.AppCompat.Transparent.NoActionBar">

我很困惑,因为这很容易。也许它在 nativescript 上有所不同?

我看这个视频https://www.youtube.com/watch?v=NroxMDGOJ_E但是如果我在 ns_primaryDark 上设置这个颜色“#00000000”或“@android:color/transparent”它不起作用。

标签: androidnativescriptstatusbar

解决方案


  • 页面.xml
  • page.js
  • 页面.css

在 Nativescript 6 中测试,在你的页面对应的 nativescript CSS 文件中试试这个:

ActionBar {
   opacity: 0;
}

这里的0是完全透明,0.5是半透明,1是完全显示Actionbar。

不过,隐藏操作栏的一种干净方法是直接转到 javascript 页面:

exports.loaded = function (args) {
    page = args.object;
    page.actionBarHidden = true;
}

在您的 XML 页面中,我们添加将接收事件的加载函数和页面,并根据“actionBarHidden”的属性隐藏该页面操作栏:

<Page loaded="loaded">
<Page>

推荐阅读