AppCompatActivity作为没有标题的对话框

时间:2015-05-12 07:07:08

标签: android dialog android-appcompat

我有Activity继承自AppCompactActivity。在活动集主题的清单中:

<style name="Theme.custom" parent="Theme.AppCompat.Light.Dialog">
    <item name="android:windowNoTitle">true</item>
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/accent</item>
    <item name="colorButtonNormal">@color/accent</item>
    <item name="android:buttonStyle">@style/ButtonStyle</item>
</style>

当我运行活动时,它显示为对话框,但会显示标题!我尝试supportRequestWindowFeature(Window.FEATURE_NO_TITLE)RequestWindowFeature(Window.FEATURE_NO_TITLE),但标题仍然显示。请告诉我,有什么问题?

修改

我解决了这个问题,只将android:windowNoTitle更改为windowNoTitle!因为我使用AppCompactActvity!

5 个答案:

答案 0 :(得分:87)

如果您有AppCompatActivity,则以下内容无法正常工作

requestWindowFeature(Window.FEATURE_NO_TITLE);

简单的方法是在style.xml文件中设置它。

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

name="windowNoTitle",而不是name="android:windowNoTitle"

如果要以编程方式删除它,请在onCreate()

中添加以下内容
getSupportActionBar().hide();

答案 1 :(得分:1)

在style.xml中设置以下样式

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

在您的活动中设置此主题

<activity
    android:name=".yourDailogActivity"
    android:configChanges="orientation"
    **android:theme="@style/CheckoutDialogTheme"**
    android:screenOrientation="portrait" />

答案 2 :(得分:0)

不得在“活动”标题中保留任何内容。如果按照以下步骤操作,则活动标题将被隐藏。

style.xml:

    </style>
        <style name="MyTitledActivityDialogTheme" parent="Theme.AppCompat.Light.Dialog">
        <item name="android:windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
    </style>

manifiedt.xml:

 <activity
            android:name="YouActivity" 
            android:theme="@style/MyTitledActivityDialogTheme" />

YourClass.java:

setContentView(R.layout.xyz)之后

  setContentView(R.layout.xyz);
  if (getSupportActionBar() != null)
      getSupportActionBar().hide();

答案 3 :(得分:0)

AppCompatActivity与Activity不同,并且具有自己的功能。出于相同的目的,您只需使用-

supportRequestWindowFeature(Window.FEATURE_NO_TITLE);

您可以查找文档here

注意:请在setContentView()之前添加此字符,以免崩溃。

答案 4 :(得分:-2)

请在setContentView()之前使用请求窗口功能,如下所示

requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);