Добавить ActionBar в PreferenceActivity
Я пытаюсь сделать Settings
Activity
С помощью PreferenceActivity
. Проблема в том, что ActionBar
не появится, что бы я ни делал.
Я пробовал getSupportActionBar
, getActionBar
, setActionBar
. Ничего не работает.
Я вижу другие настройки приложений с ActionBar
s. Разве они не используют 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.