У меня есть активность A, и в представлении есть кнопка B. Если кто-то нажимает B, я хочу всплывающее окно, которое может занять часть экрана, делая невидимым в этой области, но остальная часть A видна, но не активна. Как я могу достичь этого?
Как показать активность как всплывающее окно другой активности?
Ответ 1
Если вы хотите сделать это с помощью Activity вместо диалога, вы можете сделать это, установив в манифесте тему активности android:theme="@android:style/Theme.Dialog"
- это приведет к тому, что действие будет выглядеть как диалог (плавающий поверх всего, что было под ним).
Ответ 2
Для AppCompat добавьте
android:theme="@style/Theme.AppCompat.Dialog.Alert"
для активности в AndroidManifest
Ответ 3
Класс Dialog идеально подходит для этого. вы можете легко найти примеры здесь.
Ответ 4
Чтобы добавить ответ oli, обязательно используйте диалог из темы, которую вы используете в своем приложении.
В моем случае я сделал android:theme="@android:style/Theme.Holo.Light.Dialog"
Ответ 5
Для appcompat это можно использовать в манифесте
<activity android:theme="@style/Theme.Base.AppCompat.Dialog.FixedSize" >
</activity>
Ответ 6
Настройка темы android:theme="@android:style/android:Theme.Holo.Panel"
работала для меня.
Шаги -
1. Задайте тему для действия в файле манифеста android:theme="@android:style/android:Theme.Holo.Panel"
(это должно быть изменено на любую тему). Пример:
<activity
android:name=".EditActivity"
android:theme="@android:style/android:Theme.Holo.Panel"
android:label="@string/title_activity_edit" >
</activity>
- В ресурсе ресурса xml задается соответствующее заполнение и ширина в корневом макете. Я установил его в
0
и добавил исходный макет в начале с альфой, чтобы показать часть предыдущей активности.