2013-08-16 2 views
0

Я только начал с некоторых Android-программистов и очень тяжело делал макеты. Я хочу сделать следующий tablelayout, и я хочу, чтобы средний TextView (textView3) был горизонтально расположен по горизонтали страницы, а два других TextViews должны быть слева и справа от центрированного столбца. Если одно из значений в левом или правом TextView генерирует разрыв строки, другие два TextViews также должны быть центрированы по вертикали.Центрируйте одну колонку в Tablelayout и выровняйте другую вправо и влево

Я надеюсь, что кто-то поймет мою проблему. Greetz

<TableRow 
     android:id="@+id/tableRow1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Small Text" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Small Text" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

     <TextView 
      android:id="@+id/textView4" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Small Text" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

    </TableRow> 
+0

Сложность в центре. – Aravin

+0

как этот android: layout_gravity = "left" android: layout_gravity = "center" android: layout_gravity = "right" для вашего текста – Aravin

+0

Если я установил TableRow для android: gravity = "center_horizontal", вся строка будет центрирована, что логично. Если я установлю textView3 на android: gravity = "center_horizontal", ничего не происходит вообще. Я пробовал все виды андроида: гравитация и андроид: layout_gravity, но не могу заставить его работать. – StarFighter

ответ

1

Хорошо, после еще некоторых исследований я получил это работает, установив для каждого android:layout_width="0dip" TextView. Проблема заключалась в том, что android:layout_weight зависит от фактической ширины TextViews, поэтому «wrap_content» не работал.

<TableRow 
    android:id="@+id/tableRow1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="left" 
     android:text="Small Text" 
     android:textAppearance="?android:attr/textAppearanceSmall" /> 

    <TextView 
     android:id="@+id/textView3" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:text="Small Text" 
     android:textAppearance="?android:attr/textAppearanceSmall" /> 

    <TextView 
     android:id="@+id/textView4" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="left" 
     android:text="Small Text" 
     android:textAppearance="?android:attr/textAppearanceSmall" /> 
</TableRow> 
-1

Попробуйте пожалуйста:

<TableRow 
    android:id="@+id/tableRow1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Small Text" 
     android:textAppearance="?android:attr/textAppearanceSmall" /> 

    <TextView 
     android:id="@+id/textView3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:text="Small Text" 
     android:textAppearance="?android:attr/textAppearanceSmall" /> 

    <TextView 
     android:id="@+id/textView4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="right" 
     android:text="Small Text" 
     android:textAppearance="?android:attr/textAppearanceSmall" /> 
</TableRow> 

+0

Хорошо, мы приближаемся, но это все еще не так, как я хочу. Здесь вы можете увидеть результат: http://picload.org/image/oagwldd/table.jpg «-» должно быть сосредоточено на всей странице, а в правой части TextView необходимо создать разрыв строки. – StarFighter

+0

Ок, удалите 'android: gravity =" right "и' android: gravity = "center" 'из моего кода –

+0

Это еще не помещает средний TextView с« - »в центр страницы. Я действительно не понимаю, почему это вообще не работает. Похоже, что Android говорит: «Ха-ха, посмотрите, могу ли я немного переместить этот TextView влево, я могу поместить следующий текст в ту же строку без разрыва строки, и это я игнорирую все статуты!». – StarFighter

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