我想在android操作栏标题中应用自定义主题,但是当我尝试做的时候我遇到了错误。
我的宣言:
<activity
android:name="com.lifegoal.eshop.Recharge_Activity"
android:theme="@style/MyTheme"
android:label="Mobile Recharge" >
我的价值观v11文字
<!--
Base application theme for API 11+. This theme completely replaces
AppBaseTheme from res/values/styles.xml on API 11+ devices.
-->
<style name="AppBaseTheme" parent="Theme.AppCompat.Light">
<!-- API 11 theme customizations can go here. -->
</style>
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:titleTextStyle">@style/TitleBarTextColor</item>
<item name="android:background">@color/color_blue</item>
</style>
我的Logcat输出
05-07 17:56:40.655: E/AndroidRuntime(1647): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.lifegoal/com.lifegoal.eshop.Recharge_Activity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
05-07 17:56:40.655: E/AndroidRuntime(1647): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
如果有人知道而不是帮助我......
<style name="TitleBarTextColor" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/color_white</item>
</style>
</resources>
答案 0 :(得分:2)
由于您可能将AppBaseTheme用于应用程序主题,因此还需要AppCompat主题用于覆盖活动:
您的MyTheme需要拥有父Theme.AppCompat
或Theme.AppCompat.Light
,而不是当前的Holo主题。
答案 1 :(得分:1)
按照以下链接设计自定义主题 http://jgilfelt.github.io/android-actionbarstylegenerator/
下载主题后,您只需要将文件传递到所需的文件夹,然后在AndroidManifesh.xml中,您需要编写自定义主题名称。
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/custom_theme_name" >
<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>