我有以下代码:
activity_main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.yazan.mylanguage.MainActivity">
<android.support.design.widget.TabLayout
style="@style/CategoryTab"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
styles.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<!-- Style for a tab that displays a category name -->
<style name="CategoryTab" parent="Widget.Design.TabLayout">
<item name="tabIndicatorColor">@android:color/white</item>
<item name="tabSelectedTextColor">@android:color/white</item>
<item name="tabTextAppearance">@style/CategoryTabTextAppearance</item>
</style>
<!-- Text appearance style for a category tab -->
<style name="CategoryTabTextAppearance" parent="TextAppearance.Design.Tab">
<item name="android:textColor">#A8A19E</item>
</style>
</resources>
当我尝试将十六进制颜色代码#A8A19E
代替@style/CategoryTabTextAppearance
时,它不起作用并给我一个错误,
为什么会这样?虽然此属性接受颜色值,
我需要解释一下!?
答案 0 :(得分:1)
在文件中定义十六进制颜色代码,然后按@color/color_name
引用该颜色。
如果您在此resource
文件中将颜色定义为 -
`<item name="my_color" type="color">#A8A19E</item>`
因此,文本外观的resource
文件中的最终代码将为
` <!-- Text appearance style for a category tab -->
<style name="CategoryTabTextAppearance" parent="TextAppearance.Design.Tab">
<item name="android:textColor">@color/my_color</item>
</style>`
答案 1 :(得分:0)
顾名思义,tabTextAppearance
属性采用TextAppearance。它不直接采用颜色。您在styles.xml
中包含的代码 - 您正在引用文本外观样式 - 是正确的。
请参阅styleable documentation for TextAppearance以获取文本外观样式中的有效属性列表。