Если бы ImageView был TextView , вы могли бы просто ограничить его базовую линию базовой линией другого TextView . К сожалению, ImageViews на самом деле не имеет работоспособной концепции базовых линий, поэтому вы не можете просто ограничить базовую линию ImageView до TextView . (Попробуйте, чтобы увидеть, что произойдет.)
Один из способов go - заменить ImageView на TextView , установить значок как Фон TextView и ограничивает две базовые линии. Без особого рассмотрения этот метод приведет к масштабированию деления и искажению. Чтобы обойти это, поместите отметку, которую можно рисовать, в список слоев и укажите гравитацию. Масштабирование препятствует гравитация:
tick_background. xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/ic_tick_mark"
android:gravity="center" />
</layer-list>
Отметка может выглядеть так:
ic_tick_mark. xml
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="#66A8DD"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z" />
</vector>
Список слоев также может быть XML растровым изображением, которое можно рисовать, если базовый значок является растровым.
Другой способ, который будет также работает, это создать пустой TextView , который имеет те же характеристики, что и TextView , к которому вы хотите прикрепить галочку. Ограничьте пустой TextView базовой линией другого TextView . Это поместит пустое текстовое представление рядом с первой строкой другого TextView .
Теперь возьмите ImageView и ограничьте его верх и низ пустыми TextView . Галочка выровняется по желанию.
Это решение предназначено только для XML. Другие решения могут включать некоторую кодировку.