Intereting Posts
Отладка Android NDK: armeabi-v7a не работает Использование Espresso для просмотра клика внутри элемента RecyclerView Диалоговое окно отображения входящего вызова активности Android VectorDrawable как составные чертежи Где «адаптер» подходит для MVP (пассивный просмотр)? На Kindle Fire можно ли получить адрес электронной почты пользователя? Предоставление веб-просмотров Android для растрового изображения, html5 javascript, проблемы с обратным вызовом Предотвращение выделения для итераторов ArrayList в Java Какие действия выполняет кнопка «назад / назад» на Android-триггере? Настройка местоположения телефона Android Как удалить репозиторий и добавить новый в студию Android? Robolectric getResources () выбрасывает RuntimeException (Android) Динамическое добавление представления в макет действия Android: объединение или объединение двух аудиофайлов зависает приложение 'Не удалось найти ошибку стиля mapViewStyle'.

Как вертикально выравнивать текст в TextView с помощью Compound Drawable

Этот вопрос в какой-то мере является продолжением моего последнего вопроса .

Моя проблема сейчас почти такая же, за исключением того, что вместо разделения изображения и текста в разных вариантах (а именно ImageView и TextView) я узнал, что могу использовать атрибут android:drawableLeft чтобы установить образ «для» моего текста (предложение было Указал мне Eclipse с предупреждающим знаком на линии LinearLayout).

Я думал, что единственное отличие заключается в том, что вместо установки метода ImageView с setImageResource() метода setImageResource() я просто установил drawableLeft TextView, связанный с setCompoundDrawablesWithIntrinsicBounds() . Вместо этого, когда я внес изменения, меня вернули в исходную проблему: текст выравнивается с верхним краем представления, а не с центром.

Вот как выглядит мой TextView:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/account_login" android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:drawableLeft="@drawable/pm_gmail" android:drawablePadding="8dp" android:text="example@gmail.com" android:paddingLeft="16dp" android:layout_gravity="left|center_vertical" /> <View android:layout_width="fill_parent" android:layout_height="1dip" android:layout_centerVertical="true" android:layout_below="@id/account_login" android:layout_marginLeft="16dp" android:layout_marginRight="16dp" android:layout_marginTop="5dp" android:background="#DDDDDD" /> </RelativeLayout> 

Второй View – это просто разделитель.

… и вот как выглядит макет после установки вышеупомянутых атрибутов: (У меня недостаточно репутации для публикации изображений, так что вот ссылка на него)

(Просто, чтобы быть ясным, это только статический пример. Мой текст и изображение динамически устанавливаются в коде во время выполнения).

Любая помощь приветствуется.

Изменить android:layout_gravity="left|center_vertical" для android:gravity="center_vertical" .
layout_gravity – для позиционирования представления внутри контейнера (макета), тогда как gravity относится к содержимому представления (то есть в этом случае текст внутри TextView).