I have a ListView
populated with an ArrayAdapter
. For items I use just a single TextView
layout. I want some of the rows to have compound
Quite simple:
android:drawablePadding="5dp"
It will automatically use the padding according to the direction.
I'm posting this as an answer so that someone, who comes across this post finds the answer.
There's no direct way to set a padding only to text, but you can set a positive padding to the whole TextView
and set a negative padding for the drawable.
Improving on Gio's sugestion, which is probably for a dated API/SDK...
TL:DR - just apply android:drawablePadding to increase distance between image and text.
Explanation:
android:drawablePadding now applies padding between CompoundDrawable
and original View
, in this case the TextView containing the text;
android:padding
and modifiers now apply to the whole group, including all compounds.
Doing the negative-positive hack doesn't seem to work no more.
So depending on the drawable position (drawableTop/Left/...), the padding will apply in the opposite direction of it, right next to the drawable, in other words between the two elements. For instance, Applying drawablePadding="10dp"
to a left placed drawable would have a similar effect as setting an individual ImageView
to the left of the TextView with paddingRight="10dp"
(at least padding-wise).