【问题标题】:How to set theme at runtime in android如何在运行时在android中设置主题
【发布时间】:2014-09-17 13:20:56
【问题描述】:

我尝试在运行时设置主题,除了操作栏一切正常。

我在 super.oncreate(...) 之前的 oncreate() 中设置主题

如何在操作栏中设置主题?

这是我在 style.xml 中的主题

<style name="abcThemeTest" parent="Theme.AppCompat.Light">
    <item name="android:windowBackground">@color/RED</item>
    <item name="actionBarStyle">@style/MyActionBarTest</item>
</style>


<style name="MyActionBarTest" parent="@style/Widget.AppCompat.ActionBar">
    <item name="background">@color/RED</item>        
       <item name="android:background">@color/RED</item>
    <item name="titleTextStyle">@style/MyActionBarTitleTextTest</item>
</style>

 <style name="MyActionBarTitleTextTest" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">@color/WHITE</item>
    <item name="android:textStyle">bold</item>

</style>

【问题讨论】:

标签: android android-actionbar android-theme


【解决方案1】:

像这样简单地修改你的样式文件。

    <?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- the theme applied to the application or activity -->
    <style name="CustomActionBarTheme"
           parent="@style/Theme.AppCompat">
        <item name="android:actionBarStyle">@style/MyActionBar</item>
        <item name="android:actionBarTabTextStyle">@style/MyActionBarTabText</item>
        <item name="android:actionMenuTextColor">@color/actionbar_text</item>

        <!-- Support library compatibility -->
        <item name="actionBarStyle">@style/MyActionBar</item>
        <item name="actionBarTabTextStyle">@style/MyActionBarTabText</item>
        <item name="actionMenuTextColor">@color/actionbar_text</item>
    </style>

    <!-- ActionBar styles -->
    <style name="MyActionBar"
           parent="@style/Widget.AppCompat.ActionBar">
        <item name="android:titleTextStyle">@style/MyActionBarTitleText</item>

        <!-- Support library compatibility -->
        <item name="titleTextStyle">@style/MyActionBarTitleText</item>
    </style>

    <!-- ActionBar title text -->
    <style name="MyActionBarTitleText"
           parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
        <item name="android:textColor">@color/actionbar_text</item>
        <!-- The textColor property is backward compatible with the Support Library -->
    </style>

    <!-- ActionBar tabs text -->
    <style name="MyActionBarTabText"
           parent="@style/Widget.AppCompat.ActionBar.TabText">
        <item name="android:textColor">@color/actionbar_text</item>
        <!-- The textColor property is backward compatible with the Support Library -->
    </style>
</resources>

【讨论】:

    猜你喜欢
    • 2020-05-06
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    相关资源
    最近更新 更多