textColorSecondary和textColorTertiary在AppCompat灯光主题下显示为相同

时间:2017-12-23 11:51:41

标签: android android-appcompat

重现的步骤:

的AndroidManifest.xml

  <activity
        android:name=".MainActivity"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>

MainActivity.java

public class MainActivity extends AppCompatActivity{

  @Override
  protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  }
}

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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="?android:textColorPrimary"
        android:text="Hello World!"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="?android:textColorSecondary"
        android:text="Hello World!"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="?android:textColorTertiary"
        android:text="Hello World!"/>

</LinearLayout>

启动MainActivity,我们得到: enter image description here

使用布局检查器,我们将较低的两个TextView的当前文本颜色读取为相同的值-1979711488,这对应于颜色十六进制#8a000000。我查看了Android的源代码,发现textColorSecondary由colors_material.xml中定义的alpha值控制为:

<item name="secondary_content_alpha_material_light" format="float" type="dimen">0.54</item>

转换为#8a0000000。 textColorTertiary明确定义为#8a0000000。但是,在我的Android Studio 3.0.1设计面板中,它们显示为三种不同的颜色:enter image description here

两种颜色的定义是否相同?或者我错过了什么来正确使用它们?

0 个答案:

没有答案