web-dev-qa-db-ja.com

アクティビティを他のアクティビティのポップアップとして表示する方法は?

アクティビティAがあり、ビューにボタンBがあります。誰かがBを押すと、画面の一部を取り、その領域ではAを非表示にすることができますが、Aの残りの部分は表示されますが、アクティブではありません。どうすればこれを達成できますか?

34
bhups

ダイアログではなくアクティビティを使用してこれを行いたい場合は、アクティビティのテーマをAndroid:theme="@Android:style/Theme.Dialog"マニフェスト内-これにより、アクティビティがダイアログのように表示されます(その下にあるものの上に浮かんでいます)。

64
oli

AppCompatの場合、追加

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

androidManifestのアクティビティへ

16
Actiwitty

Dialogクラスはそれを行うのに最適です。簡単な例を見つけることができます こちら

6
Sephy

Appcompatの場合、これはマニフェストで使用できます

<activity Android:theme="@style/Theme.Base.AppCompat.Dialog.FixedSize" >
</activity>
3
Arslan Mehboob

Oliの答えを追加するために、アプリケーションで使用しているテーマのダイアログを必ず使用してください。

私の場合、私はAndroid:theme="@Android:style/Theme.Holo.Light.Dialog"

3
Caio Faustino

テーマを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に設定し、アルファで始まる子レイアウトを追加して、前のアクティビティの一部を表示しました。
1
Vikram Rao

Material Designを使用している場合は、@Android:style/Theme.Material.Dialog.NoActionBar

0
Asad Mirza