8

次の方法で、プログラムで drawableLeft を追加/削除しています。

((TextView)view).setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_icon, 0, 0, 0); 
((TextView)view).setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); 

でもリストで使っているので、

選択されていない行の drawableLeft を配置の問題なしで削除するオプションが必要です。

私が欲しいもの:

  AAA
* BBB
  CCC  

私が得ているもの:

AAA
* BBB
CCC  

透明なアイコンを追加することで回避できますが、

しかし、この drawableLeft の可視性をプログラムで制御できますか?

4

2 に答える 2

1

API 23以降を使用している場合は、使用できますandroid:drawableTint="@android:color/transparent"

それ以外の場合は、カラー フィルターを使用できます。たとえば、左のドローアブルを非表示にします

Drawable[] drawables = tvLabel.getCompoundDrawables();
if (drawables[0] != null) { 
  drawables[0].mutate().setColorFilter(ContextCompat.getColor(getContext(),android.R.color.transparent), PorterDuff.Mode.MULTIPLY);
}
于 2018-05-29T13:46:10.910 に答える