1

如果我使用样式定义自定义主题:

<style name="MyTheme" parent="android:Theme">
    <item name="android:windowTitleSize">@dimen/title_bar_height</item>
    <item name="android:windowTitleBackgroundStyle">@drawable/titilebar_bg</item>
    <item name="android:windowBackground">@drawable/bg_page</item> 
</style>

而且我还有一个特殊titlebar.xml的定义我的标题栏(按钮、图标、文本等)有没有办法将此布局设置为样式中标题栏的默认布局(如所有活动的默认行为)?

这样我就不必在每个活动(实际上是所有活动)中添加以下代码:

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.my_layout);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar);

我能看到的唯一方法是将 Activity 子类化以继承方法,该方法将在 onCreate()/setContentView() 中生成 requestWindowFeature()。但这并不完全是我要问的。

4

1 回答 1

0

样式.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
     <style name="CustomWindowTitleBackground">
        <item name="android:background">#000000</item>
    </style>

    <style name="CustomTheme" parent="android:Theme">
        <item name="android:windowTitleSize">35dip</item>
        <item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item>
    </style>
</resources>       

Mainfest.xml

<application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/CustomTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
于 2013-04-15T11:36:53.980 回答