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

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

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

但是,在出现的活动对话框中有一个标题栏,它占用了我有的可用空间。 我怎样才能删除它?

尝试执行requestWindowFeature(Window.FEATURE_NO_TITLE);onCreate 。 在调用super.onCreatesetContentView之前,需要立即完成。

你可以定义你自己的主题:

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

(给@Rehan的提示)如果你使用的是兼容库,你应该select一个AppCompat父主题,并且不要使用android:前缀。 例如:

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

对于那些使用AppCompatActivity ,上面的答案可能不起作用。

尝试这个

supportRequestWindowFeature(Window.FEATURE_NO_TITLE);

立即在setContentView(R.layout.MyDialogActivity);之前setContentView(R.layout.MyDialogActivity);

如果您使用的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"

这个为我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> 

如果您使用AppCompatActivity requestWindowFeature(Window.FEATURE_NO_TITLE)不起作用。

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

  <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()以编程方式隐藏操作栏。

对于对话,你可以这样做:

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

这适用于我,也可以帮助别人:

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