drawableTint无法使用AppCompact-v7:25.3.1

时间:2017-10-07 19:41:06

标签: android xml

这个问题已经存在于此。但我想逐步了解这一点。 我将依赖关系粘贴在gradle中。

compile 'com.android.support:appcompat-v7:25.3.1'

而不是做什么。 我的xml代码在这里

<Button
    android:id="@+id/button_not_working"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/imageViewGroup"
    android:layout_marginTop="60dp"
    android:paddingEnd="9dp"
    android:layout_alignStart="@+id/imageViewGroup"
    android:layout_alignEnd="@+id/imageViewGroup"
    android:background="@drawable/button_background"
    android:text="Drawable Tine not working"
    android:textColor="@color/white"
    android:textSize="@dimen/font_size_small"
    android:textAlignment="center"
    android:layout_marginBottom="10dp"
    android:drawableEnd="@drawable/forword_arrow"
    android:drawableTint="@color/white"
    android:gravity="center"
    />

这是图片

enter image description here

forward_arrow的颜色没有变化。 这里有几个答案,但想知道一步一步做什么。 就是这样。

2 个答案:

答案 0 :(得分:1)

通过android:drawableTintandroid:drawableTintMode属性在API 23(Android 6)中引入了TextView中的复合drawable(以及它们的后代,如Button)。

截至今天,此功能尚未移植到AppCompat支持库。

当然,我自己试图解决这个问题。查看appcompat-extra库。它有XpAppCompatTextViewXpAppCompatButton个小部件。您的代码可能如下所示:

<android.support.v7.widget.XpAppCompatButton
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Drawable tint working"
    android:drawablePadding="8dp"
    app:drawableEnd="@drawable/forword_arrow"
    app:drawableTint="?android:textColorPrimary"/>

请注意,android:drawablePadding仍然使用android前缀。

此小部件的布局预览可能会被破坏。在这种情况下,请添加以下代码,以便至少知道结果应用程序的外观:

    tools:drawableEnd="@drawable/forword_arrow"
    tools:drawableTint="?android:textColorPrimary"

要将库放入 app模块 build.gradle:

repositories {
    maven { url 'https://dl.bintray.com/consp1racy/maven/' }
}

dependencies {    
    compile 'net.xpece.android:appcompat-extra:1.2.0'
}

答案 1 :(得分:-4)

您必须使用tint atttibute

编辑:我的错误,应该是backgroundTint