как показать «окно / субактивность / диалог» поверх действия, но сохранить фокус в действии - PullRequest
2 голосов
/ 03 ноября 2011

Моя деятельность А - игра, в которой выполняются некоторые фоновые операции. Когда я нажимаю кнопку в контекстном меню, я хочу открыть «маленькое окно / диалог / субактивность» (назовем его B), которое появляется в верхней части упражнения A и отображает некоторые данные об этих фоновых операциях. Но мне нужно сосредоточиться на упражнении А, чтобы продолжать взаимодействовать с ним (играть в игру).

По сути, я хочу, чтобы во время игры я мог видеть отображение данных с помощью буквы B.

Я не совсем уверен, как это реализовать. После прочтения документации у меня есть следующие выводы:

  • Я знаю, что не могу использовать диалоги, потому что у меня есть фокус. Можно ли этого избежать?
  • Использование субактивности с темой диалога - это еще один вариант, который выглядит заманчиво ... но я считаю, что субактивность имеет фокус. То же самое.
  • Мой последний вариант - попытаться добавить LinearLayout с моими данными в основной макет, «разделяя / разделяя» экран. Это не красиво, но, по крайней мере, я знаю, что это возможно. Что мне не нравится в этом подходе, так это то, что я использую ширину и высоту экрана.

Есть предложения? Решения?

PS: Я нашел здесь эту ветку, очень связанную с моим вопросом:

Ответы [ 2 ]

0 голосов
/ 04 ноября 2011

Почему бы не использовать FrameLayout, который является частью вашей деятельности? Просто убедитесь, что это представление имеет более высокий индекс z (убедитесь, что вы объявляете его последним в макете XML или создаете его во время выполнения). Таким образом, вы никогда не покинете свою активность.

0 голосов
/ 03 ноября 2011

Создать занятие со стилем Theme.Dialog. Это нормальное занятие, которое выглядит как диалог, в то время как оно немодально и принимает события.

Дополнительный улов в настройках WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL и сбросе WindowManager.LayoutParams.FLAG_DIM_BEHIND.

См. Этот ответ для полного примера: диалоговое окно без учета времени

...