Длинный Android TextView отталкивает другие виды за кадром

У меня есть два TextViews бок о бок. TextView1 имеет различную длину текста, а TextView2 всегда говорит «+ #». Когда TextView1 становится длинным, он выталкивает TextView2 с экрана. Любые идеи, как это исправить? Вот мой код макета:

<RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/TextView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:ellipsize="end" android:textSize="13sp"/> <TextView android:id="@+id/TextView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:textSize="13sp"/> </RelativeLayout> 

На самом деле это то, что я пытался решить какое-то время. К сожалению, метод, который другие предложили – используя layout_weight внутри LinearLayout – на самом деле не работает; Однако, я нашел решение для вас!

 <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="left"> <TextView android:id="@+id/TextView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@id/TextView2" android:singleLine="true" android:ellipsize="end" android:textSize="13sp"/> <TextView android:id="@+id/TextView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:singleLine="true" android:textSize="13sp"/> </RelativeLayout> 

В приведенном выше блоке мы используем RelativeLayout , чтобы выровнять первый TextView слева от второго TextView . Мы также выравниваем второй TextView с правой стороны родительской ViewGroup . Наконец, мы добавляем android:gravity="left" в родительскую ViewGroup , чтобы выровнять все TextView слева.

Это приводит к тому, что оба TextView находятся бок о бок – независимо от первой длины TextView . Если вы хотите, чтобы первый TextView имел несколько строк, просто удалите тег android:ellipsize="end" .

Надеюсь, это ваш ожидаемый результат!

Используйте LinearLayout с атрибутами веса при просмотре детьми

 <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <TextView android:id="@+id/TextView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:ellipsize="end" android:textSize="13sp" android:layout_weight="1"/> <TextView android:id="@+id/TextView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:textSize="13sp" android:layout_weight="0"/> </LinearLayout> 
Intereting Posts