Android活动作为对话框,但没有标题栏

Sha*_*ade 69 android titlebar webview

我有一个以下设置为主题的活动:

android:theme="@android:style/Theme.Dialog"
Run Code Online (Sandbox Code Playgroud)

但是,在出现的活动对话框中有一个标题栏,它占用了我可用的小空间.我该如何删除它?

Fem*_*emi 143

尝试做requestWindowFeature(Window.FEATURE_NO_TITLE);onCreate.这将需要被调用后立即进行super.onCreate,只是之前setContentView.

  • 这在`AppCompactActivity`中不起作用.你sholud添加@zackygaurav答案,以便使用`AppCompatActivity`的用户将获得正确的信息. (14认同)

zac*_*rav 116

对于那些正在使用的人AppCompatActivity,上述答案可能无效.

试试这个

supportRequestWindowFeature(Window.FEATURE_NO_TITLE);

就在此之前 setContentView(R.layout.MyDialogActivity);

  • 或者将`<item name ="windowNoTitle"> true </ item>添加到您的样式中,即不使用**android**前缀 (7认同)
  • 天才!谢谢! (6认同)

Ted*_*opp 107

您可以定义自己的主题:

<style name="NoTitleDialog" parent="@android:style/Theme.Dialog">
    <item name="android:windowNoTitle">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

(对于@Rehan的提示)如果您正在使用兼容性库,则应选择AppCompat父主题并取消android:前缀.例如:

<style name="NoTitleDialog" parent="@style/Theme.AppCompat.Dialog">
    <item name="windowNoTitle">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

  • 只需添加:使用它而不用**app**前缀为'AppCompatActivity`即为您的样式添加`<item name ="windowNoTitle"> true </ item>`. (7认同)
  • 谢谢你.这可能是一种更好的方法,但我最终使用了requestWindowFeature.不管怎么说,还是要谢谢你 :) (4认同)

Neo*_*eoh 29

如果您正在使用AppCompatActivity强制使用Theme.AppCompat.xxx的所有内容,则可以使用以下命令删除对话框标题或操作栏styles.xml:

<style name="Theme.MyDialog" parent="Theme.AppCompat.Light.Dialog">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)

注意使用name="windowActionBar",而不是name="android:windowActionBar".


San*_*kar 7

如果您正在使用AppCompatActivity,则requestWindowFeature(Window.FEATURE_NO_TITLE)不起作用.

为此,您可以在values/style.xml中创建自定义主题,如下所示:

   <style name="NoTitleDialog" parent="Theme.AppCompat.Dialog.Alert">
        <item name="windowNoTitle">true</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

请注意项目名称:"windowNoTitle"不是项目名称:"android:windowNoTitle"

在menifest.xml中,将此自定义主题应用为

<activity android:name=".activity.YourActivity"
            android:theme="@style/NoTitleDialog"/>
Run Code Online (Sandbox Code Playgroud)

或者您可以使用getSupportActionBar().hide()以编程方式隐藏操作栏.


小智 7

这对我有用。

我能够禁用标题

样式.xml

<style name="AppDialogScreenTheme" parent="Base.Theme.MaterialComponents.Light.Dialog">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml

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

  </activity>
Run Code Online (Sandbox Code Playgroud)


Ajj*_*jji 5

这个适用于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>
Run Code Online (Sandbox Code Playgroud)