gpt4 book ai didi

android - 使用 TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse 时出错

转载 作者:行者123 更新时间:2023-11-29 00:16:10 25 4
gpt4 key购买 nike

尝试使用最新的 v7 appcompat 支持库(r21、Lollipop)在 API 10 上设置 ActionBar 标题的样式时遇到此错误。尽管在 API 15+ 上运行良好。

在这个 r21 出现之前,我的相同代码曾经工作正常,导致了很多问题。

堆栈跟踪:

11-05 02:08:49.628: E/AndroidRuntime(527): Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x2
11-05 02:08:49.628: E/AndroidRuntime(527): at android.content.res.TypedArray.getColor(TypedArray.java:326)
11-05 02:08:49.628: E/AndroidRuntime(527): at android.widget.TextView.setTextAppearance(TextView.java:1616)
11-05 02:08:49.628: E/AndroidRuntime(527): at android.support.v7.widget.Toolbar.setTitle(Toolbar.java:579)
11-05 02:08:49.628: E/AndroidRuntime(527): at android.support.v7.internal.widget.ToolbarWidgetWrapper.setTitleInt(ToolbarWidgetWrapper.java:285)
11-05 02:08:49.628: E/AndroidRuntime(527): at android.support.v7.internal.widget.ToolbarWidgetWrapper.setWindowTitle(ToolbarWidgetWrapper.java:267)
11-05 02:08:49.628: E/AndroidRuntime(527): at android.support.v7.internal.widget.ActionBarOverlayLayout.setWindowTitle(ActionBarOverlayLayout.java:679)
11-05 02:08:49.628: E/AndroidRuntime(527): at android.support.v7.app.ActionBarActivityDelegateBase.onTitleChanged(ActionBarActivityDelegateBase.java:461)
11-05 02:08:49.628: E/AndroidRuntime(527): at android.support.v7.app.ActionBarActivity.onTitleChanged(ActionBarActivity.java:176)
11-05 02:08:49.628: E/AndroidRuntime(527): at android.app.Activity.onPostCreate(Activity.java:916)
11-05 02:08:49.628: E/AndroidRuntime(527): at android.app.Instrumentation.callActivityOnPostCreate(Instrumentation.java:1108)

我的应用程序的 res/styles.xml:

<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
<item name="actionBarStyle">@style/AppBaseTheme.ActionBar</item>
</style>
<style name="AppBaseTheme.ActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid">
<item name="titleTextStyle">@style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse</item>
</style>

v7 appcompat res/styles_base_text.xml:

53     <style name="Base.TextAppearance.AppCompat.Title">
54 <item name="android:textSize">@dimen/abc_text_size_title_material</item>
55 <item name="android:textColor">?android:textColorPrimary</item>
56 </style>
57
58 <style name="Base.TextAppearance.AppCompat.Title.Inverse">
59 <item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
60 <item name="android:textColorHint">?android:attr/textColorHintInverse</item>
61 <item name="android:textColorHighlight">?android:attr/textColorHighlightInverse</item>
62 <item name="android:textColorLink">?android:attr/textColorLinkInverse</item>
63 </style>

但是,一旦我删除了 styles.xml 中的“.Inverse”,它就可以正常工作了。

它在这一行崩溃 http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.3_r1/android/widget/TextView.java/#1616在尝试获取 colorHightlight 时。

知道如何解决吗?

最佳答案

可能是在 API 10 中没有Base.TextAppearance.AppCompat.Title.Inverse主题。
您应该检查主题是否存在于 API 10 中。一种解决方案可能是定义一个公共(public)基础主题,该基础主题继承自 API 10 中包含的不同父主题。

res/values-v10/themes.xml:

<style name="Base.TextAppearance.AppCompat.Title">
<item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
<item name="android:textColorHint">?android:attr/textColorHintInverse</item>
<item name="android:textColorHighlight">16842905</item>
<item name="android:textColorLink">?android:attr/textColorLinkInverse</item>
</style>

您肯定会看到 API 级别 10 中不存在 textColorHighlightInverse
检查这个textColorHighlightInverse链接并在左侧菜单中选择 API 级别 10。

也看看这个 https://code.google.com/p/android/issues/detail?id=18659

关于android - 使用 TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26758873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com