Добавить ActionBar в PreferenceActivity
Я пытаюсь сделать Settings Activity С помощью PreferenceActivity. Проблема в том, что ActionBar не появится, что бы я ни делал.
Я пробовал getSupportActionBar, getActionBar, setActionBar. Ничего не работает.
Я вижу другие настройки приложений с ActionBars. Разве они не используют PreferenceActivity?
2 ответов
если вы используете тему AppCompat, вы должны обратить внимание на некоторые моменты.
на PreferenceActivity не распространяется на AppCompatActivity или устаревший ActionBarActivity.
в качестве решения вы можете создать PreferenceFragment как вы делаете и использовать стандартный AppCompatActivity. Конечно, вы можете использовать также Toolbar.
кроме того, с новым 22.1 + appcompat вы можете использовать AppCompatDelegate расширить поддержку AppCompat к любому Деятельность.
вы можете проверить эту официальную ссылку на AppCompatPreferenceActivity, где вы можете найти пример этой техники.
явно themeing SettingActivity с темой, производной от DarkActionBar, мы можем добавить обратно панель действий.
я сделала так же есть бар в моем активность и это сработало для меня .
1.Сначала добавьте другой стиль для вашего Активность в стилях.в XML
<style name="SettingsTheme" parent="AppTheme"/>
2.Тогда сделайте отдельный стили.в XML для версии 21 (v21 / styles.xml), как указано ниже
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Settings activity theme. -->
<style name="SettingsTheme" parent="@android:style/Theme.Material.Light.DarkActionBar">
<item name="android:colorPrimary">@color/sunshine_blue</item>
<item name="android:colorPrimaryDark">@color/sunshine_dark_blue</item>
</style>
</resources>
- наконец-то в AndroidManifest тег для SettingsActivity вы также хотите добавить тему настроек:
android: theme= "@style / SettingsTheme"
Это добавит панель действий к вашему активность в устройствах, имеющих Android версии терке или равна 21.