web-dev-qa-db-ja.com

ステータスバーの色が表示されない-5.0 Lollipop Android Studio:(AppCompat-v7:r21)

Android 5.0 Lollipop in Android Studio。のAppCompat-v7:21.0.0サポートライブラリを使用しています。私の問題は、ステータスバーの色がcolorPrimaryDarkvalues/styles.xmlファイルでは、xmlレイアウトプレビューとエミュレーターの両方で黒で表示されます。

それで何が問題なのでしょうか?何か不足していますか?私にお知らせください。ありがとう。

編集:Pre-Lollipopバージョンでステータスバーの色を変更することはできないという事実を知っています。 XMLレイアウトエディタープレビューとエミュレーターの両方がAPIレベル21(5.0 Lollipop)に設定されています。ただし、ステータスバーは、colorPrimaryDarkで設定した色のままではありません。 styles.xmlstatusBarColorを試してみましたが、役に立ちませんでした。まだ黒です。

ALSO:同様の質問で、minSdkVersionを21に設定するように勧められた回答の1つを見つけました。作業。また、APIレベル15以上のデバイスでアプリを実行したいです。

40
Adifyr

これをお読みください:これを有効にするには、ウィンドウがシステムバーの背景を描画している必要があります

Android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS

しかし

Android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS

設定しないでください( Source

そのフラグを追加する方法がわからない場合:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
35
Wayne

これは私のために働いた:

   if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Lollipop) {
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        getWindow().setStatusBarColor(getResources().getColor(R.color.some_color));
    }
35
Philipp E.

ターゲットSDKバージョンを21に設定しましたか?ターゲットSDKバージョンを19のままにしておくと、同じ問題が発生しました。minSDKをそれより低いものにしておくことができます。

そしてもちろん、適切なテーマから継承し、アクティビティがそれを使用することを確認する必要があります。

12
BladeCoder

nexus7 5.1.1でテストする

style.xml v21/v22で設定が機能しない

<item name="Android:windowDrawsSystemBarBackgrounds">true</item>
<item name="Android:statusBarColor">@Android:color/holo_red_dark</item>

しかし

活動性に設定

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Lollipop) {
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
    getWindow().setStatusBarColor(getResources().getColor(Android.R.color.holo_red_dark));
}

私の仕事です

6
Tryagain Tsai

編集しているかどうかを確認するstyles.xml in values-v21フォルダー。 SDKバージョンを21に設定すると、styles.xmlvaluesフォルダー(ただし、そうする必要があります)。

enter image description here

6
gkiko

ColorPrimaryDarkを設定して、Lollipop(5.0)より前のステータスバーの色を変更することはできません。 この記事 を参照してください。

古いプラットフォームでは、AppCompatは可能な限り色のテーマをエミュレートします。現時点では、これはアクションバーと一部のウィジェットの色付けに限定されています。

3
Patrick

私の場合 values-v21/styles.xmlには、values/style.xml with colorPrimaryDark

<item name="Android:statusBarColor">@Android:color/transparent</item>

これを取り除くことは私にとってはうまくいきました。

1
mehulmpt

v22-appcompat彼ら(Android)はAndroidスタジオプレビューでステータスバーの色のレンダリングを追加しました!

時間について...とにかく、appcompatライブラリが最新バージョンであるv22.0。+に更新されていることを確認してください。

乾杯!

0
Adifyr

これは私のために働いた。スタイルからステータスバーの色を削除しました。フラグを追加して、好きな色を入れてください

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Lollipop) {
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
    getWindow().setStatusBarColor(getResources().getColor(R.color.your_color));
}
0
Mwongera808

古いアプリに取り組んでいて、それをマテリアルスタイルに変換しようとしていました。コードとすべては問題ありませんでしたが、ステータスバーのLollipopデバイスの色合いを妨げる唯一の間違いは"TargetSDKVersion" in build.gradleでした。 21未満に設定されました。21に変更すると、ステータスバーの色付けが機能し始めました。

0
Umer Farooq

私の場合、犯人はjfeinstein10/SlidingMenuライブラリでした。ライブラリをAndroid navigation drawerに置き換え、ステータスバーの色が正しく表示されるようになりました。

0
Starrover