首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓: Theme.Holo对Theme.AppCompat

安卓: Theme.Holo对Theme.AppCompat
EN

Stack Overflow用户
提问于 2016-04-25 10:32:05
回答 2查看 10.1K关注 0票数 3

我使用"@android:style/Theme.Holo“作为我游戏的主题:

但是为了能够设置snackbar小部件,我别无选择,只能使用"@style/Theme.AppCompat",,否则我会得到以下错误消息:

代码语言:javascript
复制
You need to use a Theme.AppCompat theme (or descendant) with the design library

问题是"@style/Theme.AppCompat“在视觉上是完全不同的:

我能做些什么来保持与"@android:style/Theme.Holo",相同的视觉效果,但同时能够使用snackbar小部件?

使用Yoann Hercouet的解决方案编辑,结果如下:

少了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-25 14:06:45

我终于找到了解决办法:

AndroidManifest.xml

代码语言:javascript
复制
<application
    android:theme="@style/Theme.AppCompat"
    ...

MyDialog.java

代码语言:javascript
复制
new AlertDialog.Builder(new ContextThemeWrapper(context, android.R.style.Theme_Holo_Dialog));

而不是:

代码语言:javascript
复制
new AlertDialog.Builder(context);
票数 8
EN

Stack Overflow用户

发布于 2016-04-25 10:50:47

尝试通过更改对话框的默认样式来更新应用程序主题:

代码语言:javascript
复制
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    ...
    <item name="alertDialogTheme">@android:style/Theme.Holo.Dialog</item>
</style>

编辑

不知道它为什么不改变任何东西,它在我的应用程序上起作用了,也许可以尝试另一种方式,并创建一个自定义样式:

代码语言:javascript
复制
<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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36838033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档