У меня есть проект с одним действием и несколькими фрагментами. Фрагменты заменяются на активность. У фрагмента основного меню не должно быть панели действий, но панель действий должна сохраняться на всех остальных фрагментах. Также должна работать кнопка возврата по умолчанию. Я использую этот код: getActivity(). GetActionBar(). Hide();, чтобы скрыть панель действия иОтображение и скрытие панели действий в фрагментах
ActionBar actionBar = getActivity().getActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.show();
для его отображения.
Но меня больше всего смущает тема. Какую тему я должен использовать, чтобы иметь светлый фон, и я должен определить все свойства, такие как textColor, фон при расширении темы, например ThemeOverlay.AppCompat.ActionBar? Эта тема сделала беспорядок для пользовательского интерфейса. Каков наилучший способ сделать все это?
styles.xml
<!-- Base application theme. -->
<style name="AppTheme" parent="ThemeOverlay.AppCompat.ActionBar">
<item name="actionBarStyle">@drawable/actionbar_background</item>
</style>
Спасибо.
Я вставил код XML и изменил имена цветовой переменные и побежал приложение. Но вызов getActivity(). GetActionBar(). Hide(); из MainMenuFragment.java выбрасывает исключение NullPointerException. Отладчик показывает, что панель действий имеет значение NULL. Раньше у меня была такая же проблема при использовании Theme.AppCompat.Light.DarkActionBar. – X0rrify
Имеет ли MainActivity расширение класса Activity или ActionBarActivity? – X0rrify
Хорошо, если вы используете Theme.AppCompat (его лучше, чем Theme.Holo, так что продолжайте его использовать) вам нужно позвонить: Android.support.v7.app.ActionBar actionBar = getSupportActionBar(); Попробуйте с этим кодом –