- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在从一个自定义 MediaRouteButton 移动到操作栏内的一个,但它没有正确显示。定制时的按钮是白色的,这正是我想要的。但是,即使操作栏是“Holo.Light”样式,按钮在操作栏上仍然是白色的(几乎看不到)。该按钮应该是深色的。
按钮创建为 XML 菜单项:
<item
android:id="@+id/menu_item_media_route"
android:title="@string/menu_item_media_route"
android:actionViewClass="android.support.v7.app.MediaRouteButton"
android:actionProviderClass="android.support.v7.app.MediaRouteActionProvider"
android:showAsAction="always" />
我的应用是“@style/AppTheme”风格:
<style name="AppTheme" parent="android:Theme.Holo.Light">
</style>
主题“@style/FullscreenActionbarTheme”我的 Activity :
<style name="FullscreenActionbarTheme" parent="android:Theme.Holo.Light">
<item name="android:windowFullscreen">true</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowBackground">@null</item>
<item name="android:actionBarStyle">@style/FullscreenActionbar</item>
</style>
<style name="FullscreenActionbar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid">
</style>
我没有自定义“ic_media_route_(on|off).png”可绘制对象——我以前有但删除了它们。
我试过改变各种样式,虽然操作栏会变暗,但转换按钮始终是白色的。 (因为它应该在深色操作栏上而不是浅色操作栏上。)
按钮功能齐全,只是颜色不对。按下按钮时出现的“选择器”对话框样式为“Holo.Light”。
那么,为什么我的转换按钮在“Holo.Light”主题上显示为白色,就好像它是“Holo”(深色)主题一样?
最佳答案
取自:Link
Caution: When implementing an activity that provides a media routerinterface you must extend either ActionBarActivity or FragmentActivityfrom the Android Support Library, even if your android:minSdkVersionis API 11 or higher.
ActionBarActivity
已被 AppCompatActivity
取代,因此您应该改用它。
Support-V7 MediaRouteButton
依赖于此。查看 super
调用:
public MediaRouteButton(Context context, AttributeSet attrs, int defStyleAttr) {
super(MediaRouterThemeHelper.createThemedContext(context), attrs, defStyleAttr);
....
....
}
MediaRouterThemeHelper.createThemedContext(Context)
:
public static Context createThemedContext(Context context) {
boolean isLightTheme = isLightTheme(context);
return new ContextThemeWrapper(context, isLightTheme ?
R.style.Theme_MediaRouter_Light : R.style.Theme_MediaRouter);
}
isLightTheme
通过解析 R.attr.isLightTheme
设置 <<== 这是一个支持库属性。当您的父主题由框架提供时,它不会出现,例如 android:Theme.Holo.Light
。
private static boolean isLightTheme(Context context) {
TypedValue value = new TypedValue();
return context.getTheme().resolveAttribute(R.attr.isLightTheme, value, true)
&& value.data != 0;
}
因此,isLightTheme
为 false
并且您将获得 MediaRouteButton
的深色主题版本 ==> ... 始终为白色。
请注意,警告 语句暗示您的父主题必须是 AppCompat 主题 - AppCompatActivity
(或 ActionBarActivity
)无法使用android:Theme.*
.
编辑:
这里发生了很多讨论:Link
人们可以通过聊天记录来阅读尝试过的方法。最后,媒体路由器支持库似乎需要一些工作才能投入生产。在这里阅读更多:MediaRouteActionProvider connection dialog theme .
关于android - 为什么 Cast MediaRouteButton 即使在 Holo.Light Action-Bar 上也总是白色的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28385494/
我需要为我正在处理的应用程序使用 Surface 项目模板,但我也想使用 MVVM Light Toolkit。我发现我可以“添加 | 新项目...”并为 View 、 View 模型或定位器选择一个
我正在使用MVVM Light,并且正在使用消息在ViewModel之间进行通信,以使ViewModel知道何时可以执行某些操作。我的问题是我注册了一条消息,然后多次收到它。因此,要使我的程序不止执行
我目前正在自学MVVM模式。 我第一次碰到了消息传递的概念。 我知道消息传递包含在mvvm-light工具包中。但是我找不到任何地方的用法示例(下载中未提供示例项目)。 如果有人可以指导我了解有关如何
使用Nuget安装MVVM Light Toolkit时,似乎没有安装MVVM Light的片段。 我在哪里可以找到它们? 最佳答案 片段可在 GitHub 上找到. 下载代码(右上角克隆或下载按钮)
我遇到了一个问题,即在 VS 或 Blend 中运行解决方案时,属性 IsInDesignMode 没有返回 true 的预期值。我的环境包括 Win Server 2008 R2、VS2010 Pr
如果我将消息从 ViewModelA 发送到 ViewModelB,是否有办法从我的单元测试中捕获此通知,该单元测试正在测试引发消息的 ViewModelA? Messenger.Default.Se
我尝试使用提供的示例 petstore openapi.json 生成项目。我用过light-codegen生成端点和模型。 我确实安装了 light-codegen: git clone https
这段代码告诉计算机做什么?附注“灯”是一个 boolean 数组。 for (int k = 1; k < lights.length; k++) lights[k]
我有一个包含几个对象和一些对象的场景,在这些情况下,我希望球体受到粉红色和蓝色灯光的影响。但我也有一个管几何结构,它应该只受白光影响,而不受粉红色和蓝色光的影响。 有关问题的演示,请参见下图:现在发生
我正在考虑开始使用 MVVM Light,并且遇到了"new"ICleanup 界面。我只是想知道你什么时候清理虚拟机......当你离开页面时? 另外,我看到 ViewModelLocator 中有
我有一个带有关联虚拟机的子窗口,每次我要求打开子窗口时都会创建该虚拟机。当子窗口打开时,它会为 MVVM Light 消息注册一个监听器。关闭窗口后,我很确定我正在释放对它的所有引用,但我实际上并没有
是否有 MVVM Light DispatcherHelper 可用于 PCL 的时间表?官博中只有备注,暂时不可用。 最佳答案 我刚刚添加了一个 nuget 包,它可以帮助您从 MvvmLight
我正在尝试按照此博客文章中的示例使用 MVVM Light 框架来实现 Metro 风格的分组项目页面,但使用 ViewModelLocator 来提供可混合性: http://mikaelkoski
我们有一个使用 MVVM Light 的 WP8 应用程序,它运行良好。但是,现在我们要使用 Xamarin 来定位 iOS。看来 MvvmCross 是更好的跨平台开发框架。 有没有人有改变这样的框
刚刚注意到 4.2.30 版本不包括 protected bool Set( ref T field, T newValue,
我已经开始使用最新的 MVVM Light 工具包 v4(NuGet 预览版 v4.1.21,DLL v:4.0.21.25725),它实现了 SimpleIOC 模式。 在我的 ViewModelL
我可以使用 Interaction.Triggers 捕获文本框上的 textchanged 事件,如下所示:
我希望这不是一个太愚蠢的问题:我刚刚开始使用 MVVM light(到目前为止很喜欢它!)。在“之前”(即使用 MVVML 之前),我必须通过 ui 分派(dispatch)任何会命中引发 INoti
我在 list 中使用了以下行: android:theme="@android:style/Theme.Light.NoTitleBar" 没有标题栏并在我的应用程序中显示精简版的 AlertDia
“ChainLight”类在其构造函数中有一个名为“rayDirection”的参数: ChainLight(rayHandler, rays, Color, distance, rayDirecti
我是一名优秀的程序员,十分优秀!