Я пишу приложение для Android, которое довольно интенсивно использует режим погружения (приложение для киоска, чтобы быть точным). Однако я замечаю, что каждый раз, когда он переключается между действиями, панель навигации появляется в поле зрения на короткое мгновение (недостаточно долго, чтобы быть полезным для обычного пользователя, но достаточно долго, чтобы любопытные пользователи могли нажать кнопку «домой» и легко выйти из киоска заявление).Предотвращение навигации Android и панелей действий при появлении при переключении действий в режиме погружения?
Пример того, как я устанавливаю мою систему видимости флаги:
@Override
public boolean onTouchEvent(MotionEvent event) {
setImmersiveMode();
return super.onTouchEvent(event);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setImmersiveMode();
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
setImmersiveMode();
return super.dispatchTouchEvent(ev);
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
setImmersiveMode();
}
}
protected void setImmersiveMode() {
getWindow().getDecorView()
.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.INVISIBLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
и я начинаю свою деятельность так:
Intent intent = new Intent(MyParentActivity.this, MyNextActivity.class);
HashMap<String, String> hashMap = new HashMap<String, String>();
hashMap.put("my_var", "some useful stuff");
intent.putExtra(EXTRA_MESSAGE, hashMap);
startActivity(intent);
В течение времени, в котором текущая деятельность идет пустой и следующий активность начинает загрузку навигационных кнопок и панели действий. Как только следующая активность загружается, он вызывает метод setImmersiveMode() и эффективно возвращает данные в нужные состояния видимости. Я не могу определить способ переключения действий без появления элементов интерфейса Android UI.
Неужели кто-нибудь когда-либо сталкивался с этой проблемой с какой-либо решимостью?
Примечания:
- устройства я использую только "мягкие кнопки".
- Я запускаю свое приложение на устройстве Android 4.4.2.
- Я проделал поиск в сети, но не смог найти что-либо , достаточное для решения этой проблемы.
- Я относительно новичок в программировании на Android.
И спасибо за любую помощь.
https://developer.android.com/training/system-ui/immersive.html – ecle
Я прочитал этот документ раньше, и я не видел упоминаний о способах управления этим поведением. Однако, спасибо. – Logic1
Как насчет примера? https://developer.android.com/samples/BasicImmersiveMode/src/com.example.android.basicimmersivemode/BasicImmersiveModeFragment.html – ecle