2013-10-10 3 views
2

Я работаю над приложением, которое имеет вид списка и подробное представление, и я одушевляю из представления списка в подробный вид. Выполняя это, я хотел бы скрыть строку состояния на каком-то этапе (желательно, пока все еще отображается представление списка в фоновом режиме). Проблема заключается в том, что скрывает строку состояния с помощьюПредотвращение ретрансляции при скрытии строки состояния (faking SYSTEM_UI_FLAG_LAYOUT_STABLE)

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

вызывает представление списка (или вид детали) к relayout. Это заставляет вещи выглядеть отрывистыми, а также может вызвать большую обработку, которая делает кадры анимации. Там существует решение этой проблемы:

setSystemUiFlags(SYSTEM_UI_FLAG_LAYOUT_STABLE) на экране списка или

setSystemUiFlags(SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN) на детальном

, но они не работают на всех ниже API 16 (я нацеливание API 14 и выше) и работают непоследовательно между производителями даже по API 16 и выше.

Есть ли в любом случае, чтобы я мог скрывать строку состояния, не вызывая ретрансляции или просто останавливая макетирование на какое-то время?

+0

Просто подумайте, не подумайте, если он будет работать по желанию: вы пытались установить 'android: fitsSystemWindows =" false "' в 'ListView', или, возможно, это родитель? –

ответ

2

Как насчет FLAG_LAYOUT_IN_SCREEN и FLAG_LAYOUT_INSET_DECOR? Ваше окно будет всегда расширяться под строкой состояния, и вам нужно будет следить за вставками, чтобы убедиться, что вы не подталкиваете его содержимым, но таким образом вы не должны появляться снова, когда строка состояния скрывается или показывает.

Смежные вопросы