2017-09-20 9 views
0

誰かがQtアプリケーションのAndroidステータスバーの色を変更する方法を知っていますか?Android用Qt - ステータスバーの色

これまでのところ、多くのC++ソリューションを試しましたが、そのコードはメインのUIスレッド内で実行されず、AndroidManifest.xmlstyles.xmlのコード調整が実行されないため、ツールバー*ではなくステータスバー* ..

誰かが多分C++ソリューションを提供することができますか、誰かがxmlで結果に達しましたか?

ありがとうございました!


*用語「ステータスバー」と「ツールバー」について:Androidは2つの異なるUIエレメント「ステータスバー」を呼び出します。この場合、私はそれらのツールバーの1つを呼び出しています。明確にする:

Screenshot

答えて

0

Volodymyr Shevchyk

最終溶液に

おかげを解決:使用(私はビット打ち-ISH)

QtAndroid::runOnAndroidThread([=]() 
{ 
    QAndroidJniObject window = QtAndroid::androidActivity().callObjectMethod("getWindow", "()Landroid/view/Window;"); 
    window.callMethod<void>("addFlags", "(I)V", 0x80000000); 
    window.callMethod<void>("clearFlags", "(I)V", 0x04000000); 
    window.callMethod<void>("setStatusBarColor", "(I)V", 0xffffffff); // Desired statusbar color 
});              // A R G B 

抽出物hereフロームとhere

Qtバージョン5.7以上であることを確認してください。それ以外の場合はQtAndroid::runOnAndroidThreadは機能しません。

QAndroidJniObject decorView = window.callObjectMethod("getDecorView", "()Landroid/view/View;"); 
    decorView.callMethod<void>("setSystemUiVisibility", "(I)V", 0x00002000); 
:あなたは白、または背景など他のいくつかの非常に明るい色を使用している場合は、ステータスバーのテキストは、次のコードを使用して少し暗くさせることができる

関連する問題