自定义标题定义为布局:有没有办法通过样式/主题设置它?

时间:2013-04-15 11:27:51

标签: android

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

<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()。但这并不是我所要求的。

1 个答案:

答案 0 :(得分:0)

Styles.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>       

的Manifest.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>