i基于此存储库我的第一个TWA/PWA应用程序构建。一切正常,但是我无法更改现状栏的颜色。
我修改了此文件,并在<style>
标签中添加此行:
<item name="android:statusBarColor">@color/ic_launcher_background</item>
问题是...它在应用程序的第一个初始化中都可以正常工作...但是第一个初始化后500ms启动了WebView,并且statusbarcolor再次是白色的。
知道我如何解决此问题?
更新:支持库(E849E45C90)的最新版本已更新,以使更改状态栏颜色更容易。
SVGOMG样本已更新以使用它,并且在此拉请求中可以看到应用程序使其工作的必要更改。
以下部分已过时,但请留在此处以获取历史上下文
在打开"自定义标签"意图时对状态栏颜色进行自定义,可以更改状态栏颜色。
目前在清单中不可配置,而这样做的主要方法是:
- 将启动性从支持库存储库复制到您的项目中。
- 将androidmanifest.xml中的参考更改为实现的副本。
- 通过用以下代码替换getCustomTabsintent方法来调整您的发射器代码以设置状态栏:
protected CustomTabsIntent getCustomTabsIntent(CustomTabsSession session) {
return new CustomTabsIntent.Builder(session)
.setToolbarColor(Color.parseColor("#FF0000"))
.build();
}
上面的代码将创建一个红色状态栏。用欲望颜色替换#FF0000
。
您应该在androidManifest上添加新的meta-data,在哪里声明了可信赖的Web活动(android.support.customtabs.trusted.status_bar_color) <activity android:name="android.support.customtabs.trusted.LauncherActivity">
<meta-data
android:name="android.support.customtabs.trusted.DEFAULT_URL"
android:value="https://your-host.com/" />
<meta-data
android:name="android.support.customtabs.trusted.STATUS_BAR_COLOR"
android:resource="@color/colorPrimaryDark" />
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE"/>
<data
android:scheme="https"
android:host="your-host.com"/>
</intent-filter>
</activity>
尝试在onResume()
上添加此代码public void setStatusBarColor(int color) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(color);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
}