Cordova Android 应用程序导航栏和状态栏闪烁或变为纯白色

     2023-04-18     78

关键词:

【中文标题】Cordova Android 应用程序导航栏和状态栏闪烁或变为纯白色【英文标题】:Cordova Android app Navigation Bar and Status Bar flicker or turn solid white 【发布时间】:2021-11-01 09:05:14 【问题描述】:

我们正在 Zebra TC-57 设备上使用 Cordova 9.0 将我们的 Web 应用程序部署到 Android 8,该设备具有软导航栏(返回、主页、最近软按钮),并且我们看到的屏幕区域是通常由状态栏(顶部)和导航栏(底部)占据,快速闪烁或闪烁,有时会变成纯白色,导致状态栏和导航栏都无法正确呈现。

我们不希望应用占用全屏,我们只希望它适当地占据状态栏和导航栏之间的屏幕空间。

有解决办法吗?

【问题讨论】:

【参考方案1】:

修复

AndroidManifest.xml <activity/> 元素中,将@android:theme 更改为@android:style/Theme.Translucent 的值,为我们解决了这个问题:

Cordova 生成 AndroidManifest.xml

<manifest ...>
    ...
    <activity 
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode" 
    android:label="@string/activity_name" 
    android:launchMode="singleTop" 
    android:name="MainActivity" 

    android:theme="@android:style/Theme.Translucent" 

    android:windowSoftInputMode="adjustResize">
    ...
    </activity>
    ...
</manifest>

自动化此更改以便您不必修改 Cordova 生成的 AndroidManifest.xml 文件的最简单方法是简单地将 edit-config 元素添加到您的 Cordova config.xml 文件的 android &lt;platform&gt; 部分(感谢@simon-ludwig 提供info):

Cordova config.xml 平台部分

    <platform name="android">
        <edit-config file="AndroidManifest.xml" target="/manifest/application/activity[@android:label='@string/activity_name']" mode="merge">
            <activity android:theme="@android:style/Theme.Translucent"></activity>
        </edit-config>
        <!-- Other Android platform settings -->
    </platform>

TLDR;

在某些设备上,似乎与 Cordova android 生成的默认 Android 主题不兼容。它为AndroidManifest.xml 中的android:theme 属性指定的值是@android:style/Theme.DeviceDefault.NoActionBar

<manifest ...>
    ...
    <activity 
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode" 
    android:label="@string/activity_name" 
    android:launchMode="singleTop" 
    android:name="MainActivity" 
    
    android:theme="@android:style/Theme.DeviceDefault.NoActionBar" 
    
    android:windowSoftInputMode="adjustResize">
    ...
    </activity>
    ...
</manifest>

在 Android 开发者网站上记录了许多主题选项 here。我们发现至少在运行 Android 8 时适用于 TC-57 的是 android:theme="@android:style/Theme.Translucent" 的值

【讨论】:

在 Android 8 上的 TC51 和 TC52 上存在同样的问题。但我已经有了 @android:style/Theme.Translucent;还有其他提示吗? @esskar: 你在安卓网站上尝试过here 的其他主题吗?搜索“主题_”页面。【参考方案2】:

将 GPU 渲染器设置为 SKIA 有助于 TC56 - 但您需要访问开发者选项

【讨论】:

这并没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review

状态栏和标题之间的 Cordova Android 空白

】状态栏和标题之间的CordovaAndroid空白【英文标题】:CordovaAndroidwhitespacebetweenstatusbarandheader【发布时间】:2018-05-0204:56:40【问题描述】:我几乎完成了所有工作,但我似乎无法摆脱图片中标题和状态栏之间的空白我正在使用带有... 查看详情

系统覆盖不覆盖状态栏和导航栏 Android

】系统覆盖不覆盖状态栏和导航栏Android【英文标题】:SystemOverlaynotcoveringStatusbar&NavigationbarAndroid【发布时间】:2021-05-0810:15:23【问题描述】:我正在使用窗口服务在屏幕上绘制叠加层。但是我的覆盖没有覆盖整个屏幕,它没... 查看详情

android显示、隐藏状态栏和导航栏

参考技术AAndroid显示、隐藏状态栏和导航栏控制状态栏显示,Activity的主题中配置全屏属性控制状态栏显示,在setContentView之前设置全屏的flag控制状态栏显示,在任何位置通过添加和移除全屏的flag控制状态栏和导航栏显示,setSyst... 查看详情

无法在 Cordova.x Android 上使用导航器地理定位最小示例

...完美运行的一些简单代码,但我无法让它在简单的Android应用程序上运行。简单的地理位置代码:<!DOCTYPE 查看详情

具有标签栏和导航栏的 iPhone 应用程序

】具有标签栏和导航栏的iPhone应用程序【英文标题】:iPhoneappwithtabbarandnavigationbaraspeers【发布时间】:2010-04-1506:08:55【问题描述】:我正在尝试编写一个使用导航栏和标签栏的应用程序(我正在收集)这是一种不寻常的方式。基... 查看详情

使用导航栏和 iMessage 应用程序

】使用导航栏和iMessage应用程序【英文标题】:UsingaNavigationbarandiMessageApp【发布时间】:2016-08-2121:21:09【问题描述】:我正在使用UISearchBar/UISearchController和MKMapView创建一个iMessage应用程序。搜索栏在紧凑视图中完美显示(我知道... 查看详情

iOS 8 -- 对导航栏和状态栏应用模糊

】iOS8--对导航栏和状态栏应用模糊【英文标题】:iOS8--ApplyblurtonavigationbarANDstatusbar【发布时间】:2015-02-0423:01:32【问题描述】:我正在尝试向导航栏和状态栏添加模糊效果。我的问题是导航栏上的模糊效果很好,但状态栏没有模... 查看详情

React Native Android 状态栏和标题之间的空白

...】:2021-10-2404:14:29【问题描述】:我创建了一个react-native应用程序。使用react-navigation/native进行导航。我的android屏幕在应用程序标题和android状态栏之间有一个空白区域。我在那里什么 查看详情

通过标签栏和按钮导航屏幕

...】:2012-06-2218:13:44【问题描述】:我有以下问题:在我的应用程序中,有两种方法可以导航到其他屏幕:通过按钮或标签栏。所有屏幕都有调用其他屏幕的标签栏,但主屏幕是有按钮但没有标签栏的屏幕。当我开始开发我的应用... 查看详情

android基础篇显示隐藏状态栏和导航栏(代码片段)

一、AppTheme主题配置全屏属性<itemname="android:windowFullscreen">true</item>二、Activity的setContentView之前设置全屏的flaggetWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowMana 查看详情

如何创建一个带有导航栏和三个详细视图的应用程序?

】如何创建一个带有导航栏和三个详细视图的应用程序?【英文标题】:HowcanIcreateaanapplicationwithanavigationbarandthreedetailviews?【发布时间】:2011-03-1010:31:54【问题描述】:如何创建一个包含三个视图的导航栏的iPad应用程序?有没有... 查看详情

棒棒糖上完全透明的状态栏和导航栏

...间】:2015-05-1802:37:45【问题描述】:我正在尝试制作一个android启动器。我想实现一个完全透明的状态栏和导航栏,这里是我的主题xml文件。<resources><stylename="Theme"parent="android:Th 查看详情

android6.0隐藏导航栏和状态栏(代码片段)

frameworks\\base\\core\\res\\res\\values\\dimens.xml<!--Heightofthestatusbar-->mm<dimenname="status_bar_height">0dp</dimen><!--Heightofthebottomnavigation/systembar.-- 查看详情

在基于窗口的应用程序 iPhone 中添加标签栏和导航栏

】在基于窗口的应用程序iPhone中添加标签栏和导航栏【英文标题】:Addtabbar&navigationbarinWindowbasedapplicationiPhone【发布时间】:2011-01-1318:10:25【问题描述】:大家好我是iphone应用程序开发的新手。我想开发一个包含标签栏、导航... 查看详情

隐藏的导航栏和更改的应用程序流程 - swift

】隐藏的导航栏和更改的应用程序流程-swift【英文标题】:Hiddennavigationbarandchangedapplicationflow-swift【发布时间】:2018-07-2511:53:06【问题描述】:我可能阅读了整个互联网,但找不到解决方案,也许我不知道此功能的正确名称。通... 查看详情

标签栏和导航控制器应用程序中的状态恢复

】标签栏和导航控制器应用程序中的状态恢复【英文标题】:StateRestorationinTabBarandNavigationControllerApp【发布时间】:2015-09-0905:26:31【问题描述】:目标:我正在尝试恢复基于标签控制器的应用的状态(每个标签上都有导航控制器... 查看详情

如何在 IB 中设置导航栏和工具栏背景图像

...为图像?我知道如何在代码中执行此操作,并且已在我的应用程序中执行此操作。但现在我希望我的启动屏幕故事板反映应用程序,我必须在IB中执行此操作,因为当时应用 查看详情

iOS 7 UI 变化:状态栏和导航控制器

...间】:2013-09-1511:53:37【问题描述】:我想为iOS7更新我的应用程序。我在iOS7上从应用商店安装了应用程序,它看起来不错,UI很完美。但是当我从Xcode5安装应用程序时,它会在状态栏下方显示导航栏和其他视图。我阅读了建议使... 查看详情