SVG в coumpoundDrawable не выглядит по центру текста - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть такая раскладка:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
  <TextView
      android:id="@+id/account_display_name"
      style="@style/AccountDataDisplayName"
      android:layout_width="wrap_content"
      android:layout_height="0dp"
      android:layout_weight="1"
      android:gravity="center_vertical"
      tools:text="DisplayNameIsLongSoItShouldBeTruncatedAtSomePoint"/>
  <TextView
      android:id="@+id/account_name"
      style="@style/AccountDataAccountName"
      android:layout_width="wrap_content"
      android:layout_height="0dp"
      android:layout_weight="1"
      tools:text="emailisverylongaswellwewantittogettruncated@gmail.longdomain.com"/>
</LinearLayout>

, когда видимость account_display_name переключается на GONE и VISIBLE динамически.

В одном случае виден только accountName, тогда значок coumpoundDrawable тоже кажетсявысота.

enter image description here

В противном случае видны и accountName, и DisplayName.Тогда значок coumpoundDrawable кажется слишком низким.

enter image description here

* Я скоро добавлю изображение макета ispector.

это код Java:

   TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds(
        targetTextView, null, null, drawable, null);

как может получиться, что "setCompoundDrawablesRelativeWithIntrinsicBounds" делает разные центрирования на одном и том же ресурсе?

Я полагаю, это потому, что accountName равен wrap_content, поэтому он больше, когда один?

какая логика центрирования и позиционирования вызывает эту разницу?возможно я что-то упускаю в позиционировании compundDrawable.

Или как мне это исправить?

layout_gravitig:"center_vertical" в xml для accountName и DisplayName?

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Обычно составная нарисованная гравитация является центром, вам нужно проверить границы области просмотра SVG, чтобы увидеть, располагают ли они вектор в центре или есть немного верхнего отступа над вашим вектором.

0 голосов
/ 21 сентября 2018

попробуйте

TextView textViewCompat= convertView.findViewById(R.id.textViewCompat);
textViewCompat.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_your_svg, 0, 0, 0);
...