首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为MediaRouter对话框的标题设置样式?

如何为MediaRouter对话框的标题设置样式?
EN

Stack Overflow用户
提问于 2016-01-26 16:26:17
回答 1查看 1.5K关注 0票数 1

我使用mediarouter-v7 v23.1.1显示一个chromecast /媒体路由器选择器对话框。现在,我尝试对这个东西进行样式化--而我可以用以下方式更改背景色和列表项目文本样式:

代码语言:javascript
复制
<style name="Theme.MediaRouter.Light">
    <item name="android:background">@color/orange</item>
    <item name="mediaRouteChooserPrimaryTextStyle">@style/my_custom_style</item>
</style>

我无法覆盖对话框标题的样式。这一尝试和其他尝试均未成功:

代码语言:javascript
复制
<style name="Theme.MediaRouter.Light">
    <item name="android:windowTitleStyle">@style/my_title_style</item>
</style>
<style name="my_item_style">
    <item name="android:textColor">@color/blue</item>
</style>

据我理解,一个对话框有它自己的窗口,因此应该应用我在自定义样式中覆盖的( android:windowTitleStyle )主题,但它不是。我还查看了中介对话框的实现,看看它们是否做了什么花哨的事情(比如隐藏窗口并添加一个自定义元素作为它们的标题),但是它们没有,它们只是在Dialog实例上调用Dialog

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-05 12:55:43

不幸的是,该对话框没有遵循标准主题( Android中的对话框一般都很不友好,但这是最难使用的对话框之一)。因为该对话框是由媒体路由器提供的,所以只有当您用自己的对话框完全替换该对话框时,您才能提供自定义的主题。

您可以尝试子类化MediaRouteDialogFactory和重写onCreateChooserDialogFragment()方法,并将实现传递给ActionProvide:

mediaRouteActionProvider.setDialogFactory(yourDialogFactoryImlementation)

您可以查看一下CCL,在这里,我做了一件类似的事情,不是针对选择器对话框,而是针对控制器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35018748

复制
相关文章

相似问题

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