2016-05-19 2 views
0

Я установил цвет панели действий динамически.Как обновить цвет строки состояния также сделать его прозрачным на выдвижном ящике

Я пытаюсь так:

getSupportActionBar().setBackgroundDrawable(new ColorDrawable(color)); 
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    float[] hsv = new float[3]; 
    Color.colorToHSV(color, hsv); 
    hsv[2] *= 0.8f; 
    color = Color.HSVToColor(hsv); 
    getWindow().setStatusBarColor(color) 
} 

Как вы можете видеть, я устанавливаю действие бар цвет и сделать цвет темнее, чтобы выставиться в строке состояния. Я не знаю, правильно ли это, но до сих пор это работает.

Проблема в том, что когда я открываю ящик, цвет не является прозрачным. Как я могу сделать это здесь?

+0

Что означает ящик? Почему бы вам просто не скрыть это? – UDKOX

+0

drawer = navigation view/menu –

+1

Потому что вам нужно использовать 'android: fitsSystemWindow =" true "' для вашего ящика. «DrawerLayout» переопределяет цвет строки состояния, а если вы хотите изменить цвет, вам нужно будет использовать метод «NavigationDrawer». К сожалению, я не помню это сейчас, но имя имеет слово «бар» или «статус» –

ответ

1

Вы можете сделать это с помощью следующих действий:

В деятельности, которая содержит панель инструментов, добавить к onCreate():

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    int flag = getWindow().getDecorView().getSystemUiVisibility(); 
    getWindow().getDecorView().setSystemUiVisibility(flag | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); 
} 

В стилях-V21:

<item name="android:windowTranslucentStatus">false</item> 
<item name="android:statusBarColor">#30000000</item> <!-- This is gonna make status bar darker by 20% --> 

Это должно хватит для этого работать.

+0

Не работает ... Где установить цвет динамически? –

+0

Ну, если вы используете панель инструментов и устанавливаете ее как supportActionBar, тогда вы должны иметь ссылку на нее. Так что просто измените цвет фона вашей панели инструментов. Я имею в виду: 'Toolbar toolbar = (панель инструментов) findViewByID (R.id.toolbar);' 'setSupportActionBar (панель инструментов);' '// изменение цвета фона панели инструментов –

+0

Согласно моему коду я это делаю, я? –

Смежные вопросы