2014-03-25 7 views
0

У меня проблема с моим диалогиром Android. Я бы хотел, чтобы он отображался над любой деятельностью (возможно, нет-нет в отношении руководящих принципов проектирования, но у меня есть веские основания). Это работает. И я% 95 доволен этим. Проблема в том, что, похоже, в моем диалоговом окне все еще отображается фоновый рисунок. Это очевидно, если я не назову финиш() в своей деятельности по каждому запланированному действию. Что я сделал так, что это менее проблематично, однако, диалог закрывает долю секунды до того, как фоновая активность будет очищена, поэтому пользователь видит уродливый сантиметровый длинный ящик в течение секунды секунды, когда он заканчивается.Прозрачность диалогового окна Android (не обычный)

[_ ___]

Есть ли способ борьбы с этим? Я пробовал все темы диалога API: нет панели действий, нет заголовка, прозрачного и т. Д. И т. Д., Безрезультатно. Я также попытался установить цвет диалога на полную прозрачность.

+0

Привет, добро пожаловать в StackOverflow! Руководства по дизайну могут быть классными с вашим диалоговым окном, многие приложения используют диалоговое окно для подтверждения, ввод небольшого текста и т. Д. Это действительно зависит, если он чувствует себя естественным или нет. Но я не очень хорошо понимаю ваш вопрос. Вы имеете в виду, вам нужно убить обе вещи сразу, диалог и его родительскую деятельность? Вид диалога «закрыть приложение»? Это поможет, если вы добавите снимок экрана. – rupps

+0

Ой, боже, я забыл, что я когда-либо писал это. И да, вроде. Я не могу сделать снимок достаточно быстро, чтобы сделать это ха-ха. Но родительская активность - это диалоговое окно, которое закрывается непосредственно в то же время, что и диалоговое окно, и по-прежнему отображается как маленькое поле из-за этого в течение секунды секунды во время закрытия. Основное действие: диалог закрывается - поле активности отображается в течение секунды секунды в прямом центре, где было диалоговое окно, - закрывается. – TmeRed

ответ

0

У меня была такая же проблема, и мое решение было:

@Override 
protected void onPause() { 
    this.finish(); 
    super.onPause(); 
} 
+0

Будьте очень осторожны с этим! Вы изменяете жизненный цикл приложения опасным образом! Имейте в виду, что метод onPause можно вызвать в самых разных ситуациях, даже если вы не знаете (например, вращение планшета/телефона), в результате чего ваша деятельность будет убита. Я даже предсказываю, что вы можете вызвать множество неприятных побочных эффектов, потому что вы запускаете финиш (onStop-onDestroy), когда активность запрашивает паузу, которую вы захватываете и трансформируете в финиш. Когда заканчивается завершение вызова, вы возвращаетесь и запускаете паузу .... полный беспорядок! – rupps

+0

Я думаю, что неправильно понял вопрос. У меня была та же проблема, но была диалоговой. Это alerDialog? – pablogupi

+0

кто знает :) .... – rupps

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