2015-11-30 4 views
1

Я работаю с конструкцией материалов и CollapsingToolbarLayout и хочу использовать прозрачную строку состояния в одном из фрагментов. У меня есть MainActivity с AppTheme (в полупрозрачной строке состояния style.xml и наложениях есть ложь). У меня есть Fragment1 и Fragment2 Фрагмент1 не должен иметь прозрачную строку состояния. Просто нормально с primaryDarkColor. Тем не менее, в Fragment2 мне нужно прокрутить строку состояния прозрачности. Я достиг этого таким образом:Android set Нормальная строка состояния программно

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    //Making status bar transparent 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
     Window w = getActivity().getWindow(); // in Activity's onCreate() for instance 
     w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); 
     w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 
    } 

И когда я снова вернусь в Fragment1, строка состояния скрыта. Думаю, я должен отключить строку состояния прозрачности onPause() или onStop(). Но не знаю, как это сделать пророматично. Какие-либо предложения?

ответ

2

Чтобы изменить статус-бар цвет использование setStatusBarColor (интермедиат цвет) .use ниже код

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)); 
+0

Спасибо! Это работает. Тем не менее, мой Fragment1 View теперь все еще накладывается на StatusBar (часть панели инструментов теперь находится в строке состояния). Как я могу установить windowActionModeOverlay на ложное прогромно? – Ugadaykin

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