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>

ただし、アプリが開始されるたびに、開始からカスタム タイトルバーを使用した実際のレイアウトの表示までの間にわずかな遅延が発生します。この遅延では、デフォルトのタイトルバーがアプリ名とともに表示されます。約 1 秒後、Oncreate が終了すると、カスタム タイトルが読み込まれて表示されます。

これを修正する方法はありますか?私は何を間違っていますか?

4

1 に答える 1

1

入れてみて

super.onCreate(savedInstanceState);

他の行の前に、それが機能するかどうかを確認してください。

そして置く

setContentView(R.layout.my_layout);

過去。順番を間違えたためにアプリがクラッシュしたことを覚えているようです。

于 2012-11-22T20:29:11.660 に答える