2011-06-12 60 views
57

我有一個具有以下設置爲主題的活動:Android的活性對話,但沒有標題欄

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

然而,在出現的活動,對話框標題欄,使用起來我有的可用空間很小。我怎樣才能刪除它?

+1

我不知道你的意思。你能發佈它的截圖嗎? – 2011-06-12 22:09:45

回答

134

試試requestWindowFeature(Window.FEATURE_NO_TITLE);onCreate。在撥打super.onCreate並在setContentView之前,需要立即完成。

+0

這工作。謝謝! :) – Shade 2011-06-12 22:22:30

+1

你用2.2試過這個嗎?我得到了一個'由:android.util.AndroidRuntimeException引發:你不能將自定義標題與其他標題功能'異常,但也許我做了其他錯誤。 – Eleni 2012-06-03 10:55:44

+0

您可能正在使用代碼中的另一個窗口標題功能,或者使用對標題執行其他操作的主題。 – Femi 2012-06-07 01:52:21

84

您可以定義自己的主題:如果您在使用兼容性庫

<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> 
+4

感謝您的支持。這可能是一個更好的方法,但我最終使用了requestWindowFeature。無論如何,謝謝:) – Shade 2011-06-12 22:22:58

+5

只需添加:使用它沒有** App **的前綴'AppCompatActivity'即添加' true'你的風格。 – Rehan 2016-09-29 12:10:09

+0

謝謝,它適用於我。 – 2017-05-28 15:39:32

1

的對話框,你可以不喜歡它:

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

問題是針對顯示爲對話框而不是對話框的活動。 – 2013-09-09 20:37:09

27

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

+0

我試圖無奈地使用AppCompat並在windowNoTitle聲明中使用android命名空間。謝謝! – romulof 2016-02-03 19:48:49

72

對於那些使用AppCompatActivity的人,以上答案可能無效。

試試這個

supportRequestWindowFeature(Window.FEATURE_NO_TITLE);

立即setContentView(R.layout.MyDialogActivity);

+5

天才!謝謝! – Murphybro2 2016-01-12 13:34:28

+5

或者添加' true',即使沒有** android **前綴 – Rehan 2016-09-29 12:12:10

+0

謝謝。這個答案正是我想要的! – iroiroys 2017-01-03 02:49:18

5

前這一個爲我工作程序兼容性。

<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> 
6

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

爲此,您可以創建值/ style.xml如下自定義主題:

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

請注意,項目名稱: 「windowNoTitle」 不 項目名稱: 「機器人:windowNoTitle」

在menifest.xml將這些自訂主題爲

<activity android:name=".activity.YourActivity" 
      android:theme="@style/NoTitleDialog"/> 

,或者您可以使用getSupportActionBar()。hide()以編程方式隱藏操作欄。

0

這個工作對我來說,可能它可以幫助別人太:

風格。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"/>