shm*_*ula 6 android android-appcompat android-theme
我正在尝试在我的应用程序中联合对话框.所有活动都会延伸AppCompatActivity,因此对话框是重要的,但DialogPreference在我的设置活动中除外.
我正在使用PreferenceActivity,但我也改用它AppCompatActivity,使用PreferenceFragment.它没有任何区别.
所以我尝试为我的SettingsTheme添加自定义样式
<style name="SettingsTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:dialogPreferenceStyle">@style/StyledDialog</item>
</style>
<style name="StyledDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
</style>
Run Code Online (Sandbox Code Playgroud)
但我得到的一切都是这个(我也尝试过alertDialogStyle,alertDialogTheme和dialogTheme),holo对话保持不变
我尝试的另一件事是扩展EditTextPreference和覆盖onPrepareDialogBuilder强制我的主题:
@Override
protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {
super.onPrepareDialogBuilder(builder);
builder.getContext().setTheme(R.style.StyledDialog);
}
Run Code Online (Sandbox Code Playgroud)
也没有成功.有没有办法在一个应用程序中的对话框是AppCompat联合而不是每个都不同?我认为平台应该解决这个问题,但是,我忘了我在Android上.
编辑:经过一番挖掘,我发现DialogPreference使用android.app.AlertDialog而不是android.support.v7.app.AlertDialog.所以看起来我必须找到一种方法来覆盖Builder DialogPreference.
编辑2:好的,所以关于以前的编辑 - 我一直在使用不支持DialogPreference,所以在添加之后com.android.support:preference-v7:23.1.0我就可以访问另一个类了.但它看起来仍然有些错误和一点点hacky,所以我保留那些旧的对话框并等待支持库更新.我找到的一些有趣的链接是:
| 归档时间: |
|
| 查看次数: |
1299 次 |
| 最近记录: |