簡體   English   中英

Android:自定義標題欄

[英]Android: Custom Title Bar

我有一個自定義標題欄

 requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
 setContentView(R.layout.activities);
 getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title);

哪個工作基本上很好。 問題是,在調用上面的代碼之前,會顯示默認標題欄。 我根本不想要一個標題欄,換句話說,在我出現之前不會出現任何標題。

將此添加到清單:

<application android:theme="@android:style/Theme.NoTitleBar">

導致力量關閉。 我的清單看起來像這樣

<application android:icon="@drawable/icon" android:label="@string/app_name"
    android:theme="@style/My_Theme">

我需要my_Theme,因為它設置了背景顏色,在我的客戶主題中設置背景顏色會導致我的彩色背景周圍的灰色區域。 因此,即使沒有力量關閉,我也不確定沒有標題會有所幫助。

任何的想法?

我和你有同樣的問題。

問題在於你的風格。

試試這個:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="My_Theme">
        <item name="android:windowTitleSize">35dp</item>
        <item name="android:windowTitleBackgroundStyle">@android:color/black</item>
    </style>
</resources>

這是我唯一的一個,它會在我的自定義標題啟動之前阻止默認標題:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="CustomWindowTitleStyle">
        <item name="android:textColor">@android:color/transparent</item>
    </style>

    <style name="CustomTheme" parent="@android:style/Theme.Holo">
        <item name="android:windowActionBar">false</item>
        <item name="android:windowTitleBackgroundStyle">@android:color/transparent</item>
        <item name="android:windowTitleSize">50dp</item>
        <item name="android:windowTitleStyle">@style/CustomWindowTitleStyle</item>
    </style>

</resources>

你還應該檢查是否支持customTitle。

Boolean customTitleSupported = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
        setContentView(R.layout.main);



if (customTitleSupported) {
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.custom_title);

}

首先,如果你的應用程序有NoTitleBar,你為什么要使用自定義標題欄? 那太傻了!

不用說,這是你的問題,你必須刪除那個標志。

無論如何,添加自定義標題欄的最佳方法是僅在xml中。 這可以避免您的應用加倍標題欄; 哪些用戶會看到。

../res/styles.xml

<resources>

   <style name="AppTheme parent="@style/android:Theme.Light">
      <item name="android:windowNoTitle">false</item>
      <item name="android:windowTitleSize">30dp</item
      <item name="android:windowTitleStyle">@layout/custom_title</item>
   </style>

</resources>

然后你不需要關於requestAnything的代碼。

您的應用程序崩潰,因為在您的代碼中,您從窗口功能調用標題欄,而在另一側,您通過清單禁用它。 基本上你不能這樣做,它在邏輯上是不正確的。 您需要修改標題欄,不要將其刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM