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

Android 如何设置MediaRouter对话框标题的样式?,android,dialog,mediarouter,Android,Dialog,Mediarouter,我正在使用mediarouter-v7v23.1.1来显示chromecast/媒体路由器选择器对话框。现在,我尝试设置这件事的样式-同时我可以使用以下内容更改背景颜色和列表项文本样式: <style name="Theme.MediaRouter.Light"> <item name="android:background">@color/orange</item> <item name="mediaRouteChooserPrimar

我正在使用
mediarouter-v7
v23.1.1来显示chromecast/媒体路由器选择器对话框。现在,我尝试设置这件事的样式-同时我可以使用以下内容更改背景颜色和列表项文本样式:

<style name="Theme.MediaRouter.Light">
    <item name="android:background">@color/orange</item>
    <item name="mediaRouteChooserPrimaryTextStyle">@style/my_custom_style</item>
</style>

@颜色/橙色
@样式/我的\自定义\样式
我无法覆盖对话框标题的样式。这一尝试和其他尝试均未成功:

<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
,但不是。我还研究了mediarouter对话框的实现,看看它们是否做了什么(比如隐藏窗口和添加自定义元素作为标题),但它们没有,它们只是在
对话框
实例上调用
setTitle(…)


我做错了什么?

不幸的是,该对话框没有遵循标准主题(Android中的对话框总体上都很不友好,但该对话框是最难使用的)。由于该对话框是由media router提供的,所以只有将其完全替换为自己的对话框,才能提供自定义主题

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

mediaRouteActionProvider.setDialogFactory(您的DialogFactoryImplementation)


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

这是复制的答案,还有你不明白的事情,你能添加源代码作为参考吗?@ThomasKeller,这个博客也很有帮助:可能重复