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

时间:2011-06-12 22:08:27

标签: android webview titlebar

我的活动设置为主题:

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

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

9 个答案:

答案 0 :(得分:142)

尝试在requestWindowFeature(Window.FEATURE_NO_TITLE);中执行onCreate。这需要在致电super.onCreate之后和setContentView之前立即完成。

答案 1 :(得分:108)

对于使用AppCompatActivity的用户,上述答案可能无效。

试试这个

supportRequestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.MyDialogActivity);

之前

答案 2 :(得分:107)

您可以定义自己的主题:

<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>

答案 3 :(得分: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>

请注意使用name="windowActionBar"代替name="android:windowActionBar"

答案 4 :(得分:7)

如果您正在使用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()以编程方式隐藏操作栏。

答案 5 :(得分: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>

答案 6 :(得分:1)

对于对话框,您可以这样做:

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

答案 7 :(得分:0)

这对我有用,也可以帮助别人:

<强> 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"/>

答案 8 :(得分:0)

这个对我有用。

我能够禁用标题

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>