我有一个具有以下主题设置的活动:
android:theme="@android:style/Theme.Dialog"
但是,活动对话框中会出现一个标题栏,该标题栏占用了我的少量可用空间。如何删除?
Answers:
尝试做requestWindowFeature(Window.FEATURE_NO_TITLE);
在onCreate
。它需要在调用后立即执行,super.onCreate
并且要在之前完成setContentView
。
Caused by: android.util.AndroidRuntimeException: You cannot combine custom titles with other title features
异常,但也许我做错了其他事情。
AppCompactActivity
。您应该添加@zackygaurav答案,以便使用的用户AppCompatActivity
将获得正确的信息。
对于正在使用的用户AppCompatActivity
,上述答案可能无效。
尝试这个
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
紧接之前 setContentView(R.layout.MyDialogActivity);
<item name="windowNoTitle">true</item>
您的样式,即不添加android前缀
ConstraintLayout
在布局的根部使用,否则您的活动将不会出现在屏幕上。
您可以定义自己的主题:
<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
即添加<item name="windowNoTitle">true</item>
到您的样式中。
如果您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”
在menifest.xml中,将此自定义主题应用为
<activity android:name=".activity.YourActivity"
android:theme="@style/NoTitleDialog"/>
或者您可以使用getSupportActionBar()。hide()以编程方式隐藏操作栏。
这个为我的appcompatpat工作。
<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>
这个为我工作。
我可以禁用标题
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>
对于对话框,您可以这样做:
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"/>