Как показать активность как всплывающее окно другой активности?

У меня есть активность A, и в представлении есть кнопка B. Если кто-то нажимает B, я хочу всплывающее окно, которое может взять часть экрана, делая невидимым в этой области, но остальная часть A видна, но не активна. Как я могу это достичь?

Solutions Collecting From Web of "Как показать активность как всплывающее окно другой активности?"

Если вы хотите сделать это с помощью Activity вместо диалога, вы можете сделать это, установив тему активности на android:theme="@android:style/Theme.Dialog" в манифесте – это приведет к тому, что действие будет выглядеть как Диалог (плавающий поверх всего, что было под ним).

Для AppCompat добавьте

 android:theme="@style/Theme.AppCompat.Dialog.Alert" 

К активности в AndroidManifest

Класс Dialog идеально подходит для этого. Вы можете найти здесь легкие примеры.

Чтобы добавить ответ oli, обязательно используйте диалог из темы, которую вы используете в своем приложении.

В моем случае я сделал android:theme="@android:style/Theme.Holo.Light.Dialog"

Для appcompat это может использоваться в манифесте

 <activity android:theme="@style/Theme.Base.AppCompat.Dialog.FixedSize" > </activity> 

Настройка темы для 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> 
  1. В ресурсе ресурса xml задается соответствующее заполнение и ширина в корневом макете. Я установил его равным 0 и добавил дочерний макет в начале с альфой, чтобы показать часть предыдущей активности.