我的应用使用自定义标题栏作为布局创建,并使用以下格式实现:
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>
但是,每次启动应用程序时,使用自定义标题栏开始和显示实际布局之间会有一个小的延迟,在此延迟中,默认标题栏会显示appname。大约一秒钟后,当Oncreate完成时,加载并显示自定义标题。
有什么方法可以解决这个问题吗?我究竟做错了什么?
答案 0 :(得分:1)
尝试放
super.onCreate(savedInstanceState);
在其他行之前,看看是否有效。
并且放
setContentView(R.layout.my_layout);
持续。我似乎记得我的应用程序崩溃,因为我的顺序错误。