我有一个以下设置为主题的活动:
android:theme="@android:style/Theme.Dialog"
但是,在出现的活动对话框中有一个标题栏,它占用了我可用的小空间。我该如何删除它?
尝试在requestWindowFeature(Window.FEATURE_NO_TITLE);
做onCreate
。它需要在调用super.onCreate
之后立即完成,就在setContentView
之前。
对于那些使用AppCompatActivity
的人,上述答案可能无效。
试试这个
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
在setContentView(R.layout.MyDialogActivity);
之前
您可以定义自己的主题:
<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>
如果您正在使用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"
。
如果您正在使用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”
在manifest.xml中,将此自定义主题应用为
<activity android:name=".activity.YourActivity"
android:theme="@style/NoTitleDialog"/>
或者您可以使用getSupportActionBar()。hide()以编程方式隐藏操作栏。
这个适用于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>
对于对话框,你可以这样做:
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"/>