2016-12-05 3 views
0

Я хочу знать, как лучше всего сделать простой макет с 3 TextView. Первый TextView может быть очень длинным и содержать несколько строк, второй TextView небольшой и должен быть справа от первого TextView, третий TextView находится справа от родительского макета с фиксированным размером.Каков наилучший способ сделать это 3 вида макета?

Вот две строки этой схемы, что мне нужно: enter image description here

Вот пример XML, который показывает неправильный результат, потому что номер 22 находится на крайнем правом ряду.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:minHeight="56dp" 
    android:orientation="horizontal"> 

<TextView 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_weight="1" 
    android:gravity="center_vertical" 
    android:paddingLeft="16dp" 
    android:paddingRight="16dp" 
    android:text="TextView Row 1" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:gravity="center_vertical" 
    android:text="22" /> 

<TextView 
    android:layout_width="56dp" 
    android:layout_height="match_parent" 
    android:gravity="center" 
    android:text="show" /> 
</LinearLayout> 
+0

@MikeM. Если TextView 1 длинный, то он разбивает другие 2 вида: https://puu.sh/sEr6Q/fadd545bdc.png –

+0

@MikeM. Добавлено пространство, и TextView 1 по-прежнему занимает всю ширину и просто скрывает все остальные виды, если он слишком длинный: https://puu.sh/sErK5/18f44326fd.png –

+0

Да, я не думал об этом. Виноват. –

ответ

0

Попробуйте это.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:minHeight="56dp" 
      android:orientation="horizontal"> 

      <TextView 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="2" 
       android:gravity="center_vertical" 
       android:paddingLeft="16dp" 
       android:paddingRight="16dp" 
       android:text="TextView Row 1" /> 

      <TextView 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:gravity="center_vertical" 
       android:layout_weight="1" 
       android:text="22" /> 

      <TextView 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:gravity="center" 
       android:layout_weight="1" 
       android:text="show" /> 
     </LinearLayout> 
+0

Если TextView 1 маленький, то второй TextView будет находиться в центре: https://puu.sh/sEFiK/ca8451bb70.png, но мне нужно это после TextView 1. –

Смежные вопросы