可以同时使用 Holo 主题和 google cast 的 Android 应用吗?

Posted

技术标签:

【中文标题】可以同时使用 Holo 主题和 google cast 的 Android 应用吗?【英文标题】:Is an Android app that uses both Holo theme and google cast possible? 【发布时间】:2015-01-19 17:30:45 【问题描述】:

我的应用已经在使用 Holo,但是当我添加 chromecast 支持时,我需要使用 v7 支持 ActionBarActivity 或至少使用 FragmentActivity。据我所知,这两个都要求我使用 AppCompat 主题。真的吗?添加像 google cast 这样的功能真的需要你改变你的主题吗?我拒绝更改为 appcompat 主题的原因是因为它破坏了我创建的自定义样式。

【问题讨论】:

一般来说,来自mediarouter-v7的库存MediaRouteActionProvider需要appcompat-v7。我有a cross-port of mediarouter-v7 that works with the native action bar,避免了appcompat-v7 的要求。但是,我只将它与 RemotePlaybackClient 一起使用,而不是 Cast SDK。虽然我希望它能够奏效,但俗话说,YMMV。 是的,使用 Cast SDK 需要您使用 appcompat 库。虽然 CommonsWare 已经创建了一个没有该依赖的 mediarouter-v7 版本,但强烈建议您使用官方的 mediarouter-v7 并将您的主题更改为使用 appcompat;原因是(1)任何进入官方版本的错误修复可能无法找到非官方版本的方法,以及(2)如果你想支持 Material + 任何更旧的东西(甚至全息),你需要使用 appcompat 库反正。也就是说,这是每个开发人员必须自己做出的选择。 感谢您的意见。是的,我宁愿继续使用官方库。如果我从 Holo 切换到使用 AppCompat,那么我可以通过继续采用带有工具栏而不是操作栏的材料设计东西来避免额外的 res/values-xx/styles.xml 文件吗? 前几天我只是在看这个!如果有一个用于 API 14(?) + 并且不需要 AppCompat 的官方版本的媒体路由器库,那就太好了。 最后我还是硬着头皮采用了app compat,使用了api-21,所以我也搞定了material design的基础。这意味着分配工作只是为了添加 chromecast,但是哦,好吧。似乎随着他们添加功能,将有新的理由继续使用 Activity 类的支持版本。 【参考方案1】:

因此,总而言之,目前看来答案是否定的,它不可能。基于阿里的cmets和commonsware。至少不使用我不想做的非官方 sdk 代码。

【讨论】:

以上是关于可以同时使用 Holo 主题和 google cast 的 Android 应用吗?的主要内容,如果未能解决你的问题,请参考以下文章

Android系统主题总结和使用

Holo.Light 主题但带有白色溢出点?

自定义对话框大小以匹配 Theme.Holo.Light.Dialog

Android Studio:我还可以在清单中使用带有appcompat主题的HOLO Light DatePicker吗?

如何在默认主题中对齐 ActionBar 中心的标题(Theme.Holo.Light)

android Theme.Holo.Dialog 将蓝线变为橙色