自定义标题定义为布局:有没有办法通过样式/主题设置它?
Posted
技术标签:
【中文标题】自定义标题定义为布局:有没有办法通过样式/主题设置它?【英文标题】:Custom title defined as layout: is there a way to set it via styles/theme? 【发布时间】:2013-04-15 11:27:50 【问题描述】:如果我使用样式定义自定义主题:
<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】:样式.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>
【讨论】:
你是想说我所要做的就是将我的titlebar.xml重命名为Title.xml吗?因为我在这里看不到 Title.xml 和 Styles 之间的任何联系,这是我的问题的重点,而不是 requestWindowFeature() 的东西。 使用Mainfest.xml和Styles.xml,两者都可以通过Application实现Custom Title。我用过Title.xml不是必须的。 谢谢,但我知道。问题不在于如何使用自定义主题或自定义标题。它是关于使用我的 titlebar.xml 布局作为整个应用程序的标题。问题是如何做到这一点,以便不需要在每个活动中调用 requestWindowFeature() 方法,然后我在所有活动中使用相同的标题。所以我猜我可以以某种方式在styles.xml中设置我的titlebar.xml,这就足够了。以上是关于自定义标题定义为布局:有没有办法通过样式/主题设置它?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法在Android Studio布局编辑器中看到应用于操作栏的自定义布局?