2016-09-24 4 views
0

アプリケーションを1秒間開くと、ステータスバーが青色で表示されますが、色は赤色になっています。スタイルでステータスバーのデフォルト色を変更する

 <style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar"> 
       <!-- Customize your theme here. --> 
       <item name="colorPrimary">@color/colorPrimary</item> 
       <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
       <item name="colorAccent">@color/colorAccent</item> 
       <item name="android:statusBarColor">@color/colorPrimaryDark</item> 

     </style> 
</resources> 

Colors.xmlで

<resources> 
    <color name="colorPrimary">#a20dff</color> 
    <color name="colorPrimaryDark">#ff0000</color> 
    <color name="colorAccent">#FF4081</color> 


</resources> 

それは非常にのように、later.But私は(ユーザーが指定した)別の色に文法的に色を変更することを言及する価値があります最初はそれが違って見苦しいです。

+0

お使いのデバイスのAndroid OSのバージョンは何ですか? –

+0

私のアンドロイド版は6.0です –

答えて

0

あなたのV21テーマに線の下に追加して試してみてください:

<item name="android:windowDrawsSystemBarBackgrounds">true</item> 

OR

あなたは以下のように、プログラムによってそれを行うことができます。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    Window window = getWindow(); 
    window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 
    window.setStatusBarColor(Color.BLUE); 
} 
+0

私はすでに2番目の方法を使用して正常に動作しますが、問題は私のステータスバーが赤で、私のアプリケーションが動作しているときに、ステータスバーが青色になります。アプリケーションを起動すると、ステータスバーが赤くなります。 –

+0

ステータスバーに赤色を設定する 'setStatusBarColor(Color.BLUE)'の代わりに 'setStatusBarColor(Color.RED)'を変更してください。 –

+0

私はその男を知っています。私の問題は、1秒間アプリを起動すると、指定した色とは異なる色になります。色が1秒間青色であると想像してから、赤色に変わります。 –

0

は(次のメソッドを実装しますあなたのアクティビティで)

@TargetApi(Build.VERSION_CODES.LOLLIPOP) 
public void setStatusBarColor(int statusBarColorResId) { 

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
     getWindow().setStatusBarColor(getResources().getColor(statusBarColorResId)); 

    else Log.e("setStatusBarColor", "Operation not supported"); 
} 

コールそれ以下のように(例えば、のonCreateから)

setStatusBarColor(R.color.status_bar_color); 
+0

私はその男を知っています。私の問題は、1秒間アプリを起動すると、指定した色とは異なる色になります。色が1秒間青色であると想像してから、赤色に変わります。 –

関連する問題