Android活动作为对话框,但没有标题栏
我有一个以下设置为主题的活动:
android:theme="@android:style/Theme.Dialog"
但是,在出现的活动对话框中有一个标题栏,它占用了我有的可用空间。 我怎样才能删除它?
尝试执行requestWindowFeature(Window.FEATURE_NO_TITLE);
在onCreate
。 在调用super.onCreate
和setContentView
之前,需要立即完成。
你可以定义你自己的主题:
<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"/>