Android:Theme.Holo VS Theme.AppCompat
我使用“@android:style/Theme.Holo”作为我游戏的主题: 但为了能够设置snackbar小部件,我别无选择,只能使用“@style/Theme.AppCompat”,否则我会收到以下错误消息:Android:Theme.Holo VS Theme.AppCompat,android,themes,android-holo-everywhere,snackbar,Android,Themes,Android Holo Everywhere,Snackbar,我使用“@android:style/Theme.Holo”作为我游戏的主题: 但为了能够设置snackbar小部件,我别无选择,只能使用“@style/Theme.AppCompat”,否则我会收到以下错误消息: You need to use a Theme.AppCompat theme (or descendant) with the design library 问题在于“@style/Theme.AppCompat”在视觉上有很大不同: 我该怎么做才能保持与“@android:
You need to use a Theme.AppCompat theme (or descendant) with the design library
问题在于“@style/Theme.AppCompat”在视觉上有很大不同:
我该怎么做才能保持与“@android:style/Theme.Holo”相同的视觉效果,但同时能够使用snackbar小部件
编辑
使用Yoann Hercouet的解决方案,结果如下:
缺少什么?尝试通过更改对话框的默认样式来更新应用程序主题:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="alertDialogTheme">@android:style/Theme.Holo.Dialog</item>
</style>
...
@android:style/Theme.Holo.Dialog
编辑:
不确定为什么它不会改变任何东西,它在我的应用程序上工作,也许可以尝试其他方式并创建自定义样式:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="alertDialogTheme">@style/myAlertDialogStyle</item>
</style>
<style name="myAlertDialogStyle" parent="android:style/Theme.Holo.Dialog">
...
</style>
...
@样式/myAlertDialogStyle
...
我终于找到了解决方案:
AndroidManifest.xml:
<application
android:theme="@style/Theme.AppCompat"
...
而不是:
new AlertDialog.Builder(context);
没有任何更改,主题保持灰色,包括对话框。这很奇怪,您必须删除应用于对话框本身的任何样式,此更改将影响所有对话框。我没有指定任何其他样式。但是,如果我能把对话框和snackbar的背景调暗一点,那就太完美了。我发现了一个问题,AppTheme应用得很好,但是“item name=“alertDialogTheme”不会影响对话框的视觉效果。我通过导入安卓.support.v7.app.AlertDialog而不是导入安卓.app.AlertDialog解决了这个问题。
new AlertDialog.Builder(context);