Я разработал свое приложение с помощью Mono для Android. У меня последняя версия 4.0.3. Мой AndroidManifest.xml указывает:Honeycomb 3.1/Mono для Android persist 'LightsOut'
<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
{ }
}
Я вызываю это во всех представлениях, которые я создаю. На моей Motorola Xoom, работающей с 3.0.1, это работает отлично.
На моей вкладке Galaxy Galaxy 3.1 работает; но строка состояния возвращается через некоторое короткое время. В Android Log я вижу, что LightsOn() получает вызов ...
Как я могу предотвратить появление строки состояния в 3.1? Я видел это событие:
http://developer.android.com/reference/android/view/View.OnSystemUiVisibilityChangeListener.html
И думал, что я мог бы использовать это, чтобы скрыть строку состояния, если он возвращается. Но я не понимаю, как я могу подписаться на него (это не показано в Intellisense).
спасибо. Приложение имеет только одно действие, но просмотры регулярно выводятся на передний план. Выполнение этого в 3.1 приводит к тому, что строка состояния будет отображаться, по-видимому, по вашей ссылке. Я просто называю «LightsOut» снова сразу после «BringToFront», и это решает его. – TheNextman