как ограничить ширину textView в соответствии с шириной слева - PullRequest
0 голосов
/ 03 октября 2018

У меня есть макет (может быть относительным, линейным или ограниченным)

с TextView, выровненным по левому родительскому элементу, а затем с выравниванием ImageView (фиксированная ширина), начинающимся прямо к textView.

Я хочу, чтобы изображение сначала отображалось, а затем - для отображения текста.

То есть я хочу, чтобы текстовое представление было обрезано в соответствии с левым пространством после отображения изображения.

  <RelativeLayout
      android:id="@+id/account_name_layout"
      android:layout_width="match_parent"
      android:layout_height="0dp"
      android:layout_weight="1"
      android:layout_marginBottom="@dimen/account_menu_account_name_layout_bottom_margin">
    <TextView
        android:id="@+id/account_name"
        style="@style/AccountDataAccountName"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:lines="1"
        android:ellipsize="end"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        tools:text="emailisverylongaswellwewantittogettruncated@gmail.longdomain.com"/>

    <ImageView
        android:id="@+id/account_name_chevron"
        android:layout_width="@dimen/account_menu_chevron_size"
        android:minWidth="@dimen/account_menu_chevron_size"
        android:layout_height="@dimen/account_menu_chevron_size"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@+id/account_name"
        android:layout_marginTop="@dimen/account_menu_chevron_top_margin"
        android:layout_marginLeft="@dimen/account_menu_chevron_left_margin"/>
  </RelativeLayout>

Я пробовал несколько вариантов:

1) указание текста, оставляемого для просмотра изображения

2) придание веса текстовому виду - пробел междудва элемента.

3) установка minWidth для представления изображения - не помогло просто уменьшить масштаб imageView.

Любая идея, как сначала визуализировать изображение и как ограничить ширину textView.по ширине слева?

1 Ответ

0 голосов
/ 03 октября 2018

Вы можете принудительно установить ширину в imageView.Это предотвратит выталкивание текста из пространства.Если вы говорите, что сделали это, пожалуйста, опубликуйте полученное изображение, так как это не имеет никакого смысла.

В приведенном выше примере нет ограничений друг к другу, нет принудительного наложения или отталкивания.Вам нужны некоторые ограничения, такие как «toTheLeftOf» или «Weight» или LinearLayout, чтобы применить его, поскольку Weight работает только в LinearLayout.

Самый простой способ - просто задать imageView жестко запрограммированные ширину и высоту DP, а затемустановите текст равным 0 ширине с весом 1 внутри линейного макета.

Вы также можете использовать проценты, если хотите, используйте LinearLayout, а затем поместите весовую сумму, например, равную 100 (представляющую 100%).Затем присвойте своему изображению любой процент, в котором он нуждается, например layout_weight = 30, и введите textview 70.

Любой из этих вариантов будет работать для вас нормально.Если вы попробуете это, а это не так, то опубликуйте свой пробный код, так как он будет работать, если вы не делаете глупости, которые не видны в вашем текущем примере.Поскольку я делаю это все время, каждый раз, когда вы строите строку, у вас обычно есть фиксированное изображение слева и справа текст для увеличения.

...