web-dev-qa-db-ja.com

Androidダイアログとしてのアクティビティ、ただしタイトルバーなし

テーマとして次のセットを持つアクティビティがあります。

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

ただし、表示されるアクティビティダイアログにはタイトルバーがあり、使用可能な小さなスペースを使い果たします。どうすれば削除できますか?

68
Shade

onCreaterequestWindowFeature(Window.FEATURE_NO_TITLE);を実行してください。 super.onCreateを呼び出した直後で、setContentViewの直前に実行する必要があります。

143
Femi

AppCompatActivityを使用している場合、上記の回答が機能しない場合があります。

試してみてください

supportRequestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.MyDialogActivity);の直前

109
zackygaurav

独自のテーマを定義できます:

<style name="NoTitleDialog" parent="@Android:style/Theme.Dialog">
    <item name="Android:windowNoTitle">true</item>
</style>

(@Rehanへのヒント)互換性ライブラリを使用している場合は、AppCompat親テーマを選択し、Android:プレフィックスを省略してください。例えば:

<style name="NoTitleDialog" parent="@style/Theme.AppCompat.Dialog">
    <item name="windowNoTitle">true</item>
</style>
107
Ted Hopp

すべてにTheme.AppCompat.xxxを使用せざるを得ないAppCompatActivityを使用している場合、これを使用してstyles.xmlのダイアログタイトルまたはアクションバーを削除できます。

<style name="Theme.MyDialog" parent="Theme.AppCompat.Light.Dialog">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
</style>

name="windowActionBar"の代わりにname="Android:windowActionBar"を使用していることに注意してください。

29
Neoh

AppCompatActivityを使用している場合、requestWindowFeature(Window.FEATURE_NO_TITLE)は機能しません。

このため、以下のようにvalues/style.xmlにカスタムテーマを作成できます。

   <style name="NoTitleDialog" parent="Theme.AppCompat.Dialog.Alert">
        <item name="windowNoTitle">true</item>
    </style>

アイテム名: "windowNoTitle"ではなくアイテム名: "Android:windowNoTitle"

Menifest.xmlでこのカスタムテーマを次のように適用します

<activity Android:name=".activity.YourActivity"
            Android:theme="@style/NoTitleDialog"/>

または、getSupportActionBar()。hide()を使用して、プログラムでアクションバーを非表示にすることができます。

7

これはappcompatのために私のために働いた。

<style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>
5
Ajji

ダイアログの場合、次のようにできます。

Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
1
AnhSirk Dasarp

これは私のために働いた。

タイトルを無効にすることができました

style.xml

<style name="AppDialogScreenTheme" parent="Base.Theme.MaterialComponents.Light.Dialog">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

AndroidManifest.xml

  <activity
        Android:name=".MyActivity"
        Android:theme="@style/AppDialogScreenTheme">

  </activity>
0
J.Sattar

これは私のために働いています、誰かにも役立つかもしれません:

style.xml

<style name="NoTitleActivityDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="windowNoTitle">true</item>
</style>

AndroidManifest.xml

   <activity
        Android:name=".DialogActivity"
        Android:theme="@style/NoTitleActivityDialog"/>
0
Kapil Rajput