有没有什么方法可以改变我在NavigationDrawer
中按下的列表项的图标和文字的颜色。
我知道我可以轻松地使用NavigationView
执行此操作,但我的要求非常奇怪,因此我无法使用NavigationView
。
我尝试实施TouchListener
。但它不起作用。
TouchListener
drlyt.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// darken background
imgIcon.setColorFilter(Color.parseColor("#47ACD6"),
Mode.SRC_ATOP);
txtTitle.setTextColor(Color.parseColor("#47ACD6"));
Log.e("msg", "Down " + position);
break;
case MotionEvent.ACTION_UP:
// clear color filter
imgIcon.setColorFilter(null);
txtTitle.setTextColor(Color.parseColor("#666666"));
Log.e("msg", "Up");
break;
}
return false;
}
});
请帮帮我。 谢谢。
答案 0 :(得分:1)
支持库包括
支持backgroundTint和backgroundTintMode。因此,您可以创建colorList并使用setSupportBackgroundTintList和setSupportBackgroundTintMode等函数。
是肯定的。我可以找到AppCompatTextView但不能找到AppCompatImageView。和 你能给我一个如何使用它们的例子吗?
仅使用XML
cmd
抽拉/背景
<android.support.v7.widget.AppCompatImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_done"
app:backgroundTint="@drawable/background"
app:backgroundTintMode="src_over"/>
仅使用代码
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/colorAccent" android:state_pressed="true" />
<item android:color="@color/colorPrimary" />
</selector>