2011-02-09 36 views
2

我有一個自定義佈局,我想用作我的android應用程序的標題欄。找到的技術(在底部鏈接)有效,但系統標題欄在onCreate()被調用之前顯示。顯然,這看起來很不和諧,作爲一個時刻顯示的系統工具欄,然後我的自定義標題欄顯示:自定義標題欄 - 系統標題欄在短時間內顯示?

// styles.xml 
<resources> 
    <style name="MyTheme"> 
    <item name="android:windowTitleSize">40dip</item> 
    </style> 
</resources> 

// One of my activities, MyTheme is applied to it in the manifest. 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 
    setContentView(R.layout.my_activity); 
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.my_custom_header); 
} 

我總是隱藏系統標題欄並顯示自己的在線也許每一個佈局,但是,這不是很友善。

感謝

http://www.londatiga.net/it/how-to-create-custom-window-title-in-android/

+0

你是不是想沒有系統(:主題,我不工作,我已經通過的onCreate加入以下代碼()我的Activity子類的使它空白)欄顯示在您的自定義欄之前? – AedonEtLIRA 2011-02-09 23:15:29

+0

那麼,自定義欄是一個layout.xml文件 - 理想情況下,應用程序會立即顯示該自定義的layout.xml文件。現在看起來很尷尬,系統欄顯示一秒鐘,然後被我的自定義layout.xml欄取代。 – user291701 2011-02-10 00:45:38

回答

3

我認爲這是一個框架的限制。我在一些應用程序中遇到了同樣的問題,最終的解決方案是告訴框架,我根本不需要標題欄,然後在我的佈局中創建自己的標題欄。 include指令使其忍受對我來說,如:

<include layout="@layout/title" /> 

當我在活動中使用requestWindowFeature(Window.FEATURE_NO_TITLE),我也有同樣的問題,我想簡要地看到系統標題欄而活動在第一次加載時正在構建。

當我切換到使用主題來告訴框架我不想要標題時,問題就消失了,現在我直接在第一次加載時看到自己的標題。造型很容易爲:

<style name="FliqTheme" parent="@android:Theme.Black"> 
    <item name="android:windowNoTitle">true</item> 
</style> 

我知道這並不適用於您的問題與自定義標題,但像PTC提到的,如果你移動你的自定義標題爲風格/主題定義(你做的覆蓋你主題中的系統標題樣式),我想你會走在正確的軌道上。

0

嘗試創建一個XML格式的自定義主題風格,然後設置您的活動的主題屬性在AndroidManifest.xml文件。

http://developer.android.com/guide/topics/ui/themes.html#ApplyATheme

+0

嗨,是的,我有一個自定義的主題,但你可以在那裏定義的標題欄的背景。我的自定義標題欄是一個帶有一些控件的佈局(如twitter的)。所以我們被困在啓動時顯示一個時髦的系統標題欄,直到顯示真實的標題欄。 – user291701 2011-02-10 00:48:01

1

當我試圖定製標題時,今天發生了同樣的問題。我通過在AndroidManifest.xml中設置android:themeandroid:style/Theme.NoTitleBar,並在我的活動的onCreate回調函數中調用setTheme()來實現我想要的實際主題。

0

通過設置機器人的方法:

getWindow().addFlags(LayoutParams.FLAG_FULLSCREEN);