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

Posted

技术标签:

【中文标题】如何设置 MediaRouter 对话框的标题?【英文标题】:How can I style the title of a MediaRouter dialog? 【发布时间】:2016-01-26 16:26:17 【问题描述】:

我正在使用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 对话框的实现,看看他们是否做了任何花哨的事情(比如隐藏窗口并添加自定义元素作为标题),但他们没有,他们只是在 Dialog 实例上调用 setTitle(...)

我做错了什么?

【问题讨论】:

MediaRouteActionProvider connection dialog theme的可能重复 【参考方案1】:

不幸的是,该对话框不遵循标准主题(Android 中的对话框通常都非常不友好,但这是最难使用的对话框之一)。由于该对话框是由媒体路由器提供的,因此您只能提供自定义主题,如果您将其完全替换为您自己的对话框。

您可以尝试继承 MediaRouteDialogFactory 并覆盖 onCreateChooserDialogFragment() 方法并将您的实现传递给 ActionProvide:

mediaRouteActionProvider.setDialogFactory(yourDialogFactoryImlementation)

您可以查看 CCL,我在其中做类似的事情不是针对选择器对话框,而是针对控制器

【讨论】:

这是抄的答案,有什么不懂的问 能否请您添加来源作为参考? @ThomasKeller ***.com/questions/24245926/…,这个博客也很有帮助:explod.io/setting-the-theme-of-mediaroutechooserdialog

以上是关于如何设置 MediaRouter 对话框的标题?的主要内容,如果未能解决你的问题,请参考以下文章

MediaRouter 和 Palette 与 NetStandard2.1 不兼容

Android:让 Google Cast MediaRouter 图标显示

错误:找不到 2 个 Android X 程序集,请确保安装以下 NuGet 包:- Xamarin.AndroidX.MediaRouter

Chromecast for Android MediaRouter getInstance() 导致崩溃

如何忘记 Android M 运行时权限对话框中的“不再询问”选项

如何在 MFC 对话框应用程序中将复选框设置为默认选中?