我正在开发一个Android qt应用程序。我想将android状态栏的颜色更改为与我的应用程序背景颜色相同。目前无论我的应用程序的颜色是什么,状态栏仍然是黑色的。有什么方法可以使状态栏的颜色与我的应用程序相同。我不是在我的应用程序中使用Java。我想通过进行更改来实现仅限androidManifest.xml文件。这可能。
答案 0 :(得分:1)
要更改状态栏颜色,请使用setStatusBarColor(int color)。根据javadoc,我们还需要在Window上设置一些标志。
代码片段:
Window window = activity.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(activity.getResources().getColor(R.color.example_color));
请注意,根据材料设计指南,状态栏颜色和操作栏颜色应该不同:
ActionBar应使用主500色 StatusBar应使用主700色。
资源:(How to change status bar color to match app in Lollipop? [Android])
答案 1 :(得分:0)
您只需在代码中添加:
this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
答案 2 :(得分:0)
这是一个测试项目。重要的代码段是:
QtAndroid::runOnAndroidThread([=]() {
QAndroidJniObject window = QtAndroid::androidActivity().callObjectMethod("getWindow", "()Landroid/view/Window;");
window.callMethod<void>("addFlags", "(I)V", FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.callMethod<void>("clearFlags", "(I)V", FLAG_TRANSLUCENT_STATUS);
window.callMethod<void>("setStatusBarColor", "(I)V", color.rgba());
});