- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用适用于 Android 的 Mono 开发了我的应用程序。我有最新版本 4.0.3。我的 AndroidManifest.xml 指定:
<uses-sdk android:targetSdkVersion="11" android:minSdkVersion="8" />
该应用程序在平板电脑上运行,因此在 Honeycomb 中我需要隐藏屏幕底部的状态栏。我就是这样做的(使用简单的扩展方法):
internal static void LightsOut(this View view)
{
try
{
IntPtr view_setSystemUiVisibility = JNIEnv.GetMethodID(view.Class.Handle, "setSystemUiVisibility", "(I)V");
JNIEnv.CallVoidMethod(view.Handle, view_setSystemUiVisibility, new JValue(1));
}
catch
{ }
}
我在实例化的每个 View 上调用它。在我的摩托罗拉 Xoom 上,运行 3.0.1,这很好。
在我运行 3.1 的 Samsung Galaxy Tab 上,它可以工作;但是状态栏会在短时间后恢复。在 Android 日志中,我看到正在调用 LightsOn()...
如何防止状态栏在 3.1 中恢复?我看到了这个事件:
http://developer.android.com/reference/android/view/View.OnSystemUiVisibilityChangeListener.html
我想我可以用它来隐藏状态栏,如果它回来了。但我不知道如何订阅它(它没有显示在 Intellisense 中)。
最佳答案
在状态栏返回之前是否发生了特定的事情,或者仅仅是时间相关的?快速搜索 ICS source建议当顶部应用程序窗口更改时,状态栏状态将被重置。当您看到此行为时,您是在调用 StartActivity()
还是转移到另一个应用?
View.OnSystemUiVisibilityChangeListener
接口(interface)已绑定(bind)为 View.IOnSystemUiVisibilityChangeListener界面并通过View.SystemUiVisibilityChange事件。但是,这两种机制都要求您的 $(TargetFrameworkVersion)
以 Android v3.1 或更高版本为目标,这将设置您的 //uses-sdk/@android:minSdkVersion
属性到 12
,因此这是您(大概)不想做的事情。
我在这里看到两个看似合理的解决方案:
LightsOn()
的原因并尝试解决它(在每个 Activity.OnCreate()
中调用 LightsOut()
> 方法?)。minSdkVersion
为 8
,另一个为(至少)12
,然后使用Multiple APK Support将两者都包含在您的程序中。然后设备将运行适当的包,允许访问 View.SystemUiVisibilityChange
事件。关于android - Honeycomb 3.1/Mono for Android 持续存在 'LightsOut',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9472185/
我使用适用于 Android 的 Mono 开发了我的应用程序。我有最新版本 4.0.3。我的 AndroidManifest.xml 指定: 该应用程序在平板电脑上运行,因此在 Honeycomb
我是一名优秀的程序员,十分优秀!