更改向上箭头的颜色后标记为私人警告

为操作栏中的后退箭头定义自定义颜色后,将返回警告。可以做些什么来摆脱这个警告?

        final Drawable upArrow = ContextCompat.getDrawable(this, R.drawable.abc_ic_ab_back_mtrl_am_alpha);
        upArrow.setColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP);
        actionBar.setHomeAsUpIndicator(upArrow);

资源@drawable/abc_ic_ab_back_mtrl_am_alpha在 com.android.support:appcompat-v7 中被标记为私有


答案 1

有关原因,请参阅选择要公开的资源。

简而言之,drawable/abc_ic_ab_back_mtrl_am_alpha 是 appcompat-v7 的私有资源,供该库使用。你不应该使用它。

如果您确实想使用它,请将其复制到您的项目中


答案 2

而不是做穆罕默德的

android {
    lintOptions {
        disable 'PrivateResource'
    } 
}

我建议执行以下操作,这是对语句的本地修复。优点是不必全局停用 Lint 检查(以后很容易忘记再次激活)。

对于 XML:

tools:ignore="PrivateResource"

对于代码:

@SuppressLint("PrivateResource")

实际上,您的代码应如下所示:

XML:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:icon="@drawable/abc_ic_search_api_mtrl_alpha"
    tools:ignore="PrivateResource" />

法典:

@SuppressLint("PrivateResource")
final Drawable upArrow = ContextCompat.getDrawable(context, R.drawable.abc_ic_ab_back_mtrl_am_alpha);

推荐