Хорошо, быстрый фон: я разрабатывал приложение для простого музыкального плеера и улучшал пользовательский интерфейс (особенно на более новых устройствах). Я решил реализовать тонированное StatusBar, используя fabled SystemBarTint library.Мой фрагмент был перекрыт вкладками ActionBar при использовании SystemBarTint
Импортировано .JAR, последовали указания использования, изменили тему приложения и вуаля! Мое приложение выглядит более привлекательным, чем 10-летний шоу-байк. Но подождите, есть еще!
Как вы можете видеть, ListView
теперь покрывается ActionBar
и его закладках. Я сделал домашнее задание и нашел this обходной путь - который работает, вроде.
Мои ListView
больше не покрываются ActionBar
, но она по-прежнему покрыта закладками!
Как мне разобрать этот?
Это мой BaseActivity
onCreate
метод, который активирует SystemBarTint
библиотеку:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SystemBarTintManager tintManager = new SystemBarTintManager(this);
tintManager.setStatusBarTintEnabled(true);
tintManager.setTintColor(getResources().getColor(R.color.wowza_orange));
}
..и это обходной путь, поставляется в моем Fragment
(в котором находится ListView
):
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
musicList.setClipToPadding(false); // musicList is my ListView instance.
setInsets(getActivity(), (View) musicList);
}
public static void setInsets(Activity context, View view) {
SystemBarTintManager tintManager = new SystemBarTintManager(context);
SystemBarTintManager.SystemBarConfig config = tintManager.getConfig();
view.setPadding(0, config.getPixelInsetTop(true),
config.getPixelInsetRight(), config.getPixelInsetBottom());
}
Спасибо заранее!