2012-11-22 107 views
0

我的应用程序使用作为布局创建自定义标题栏并使用此格式实现:自定义标题栏延迟

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 
setContentView(R.layout.my_layout); 
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.my_custom_title); 
super.onCreate(savedInstanceState); 

现在它没有使用常规的主题android:Theme.Light工作,也没有android:Theme.Light.NoTitleBar,他们都导致当调用setContentView时发生致命异常。因此,我创建它看起来像这样自定义样式:

<style name="MyWindowTitleBackground"> 
    <item name="android:background">#000000</item> 
</style> 

<style name="CustomTheme" parent="android:Theme.Light"> 
    <item name="android:windowTitleBackgroundStyle">@style/MyWindowTitleBackground</item> 
    <item name="android:windowActionBar">false</item> 
    <item name ="android:windowTitleSize">35dip</item> 
</style> 

然而,每一个应用程序被启动有在启动和使用自定义标题栏的实际布局的显示器之间有一个小的延迟时间,在此延迟默认的标题栏显示在其中的应用程序名称。大约一秒钟后,当Oncreate完成时,自定义标题被加载并显示。

有什么办法解决这个问题吗?我究竟做错了什么?

+0

没有办法。它是一个恼人的错误。试试官方的Skype应用程序,你会发现它有同样的问题。 – Warpzit

+0

如果没有办法,每个具有自定义标题的应用程序都应该有这个bug。例如,Dropbox应用程序不会显示此行为。 – XorJoep

+0

在我的Dropbox应用程序中没有标题。你可以给标题栏加标题吗? – Warpzit

回答

1

尝试把

super.onCreate(savedInstanceState); 

其他行之前,看看是否可行。

,并把

setContentView(R.layout.my_layout); 

最后。我似乎记得我的应用程序崩溃,因为我的顺序错误。

+0

这是行不通的..我在把super.onCreate(..)放在不同的地方时没有看到任何区别。在调用findViewById()时,将SetContentView放置在getWindow()之后,会在各个位置产生空指针。 – XorJoep