Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:Theme.Holo VS Theme.AppCompat_Android_Themes_Android Holo Everywhere_Snackbar - Fatal编程技术网

Android:Theme.Holo VS 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:

我使用“@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: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);