2014-11-03 2 views
1

У меня есть три поля textview в одном Tablerow в моем TableLayout. Первый Textview - всегда, имеющий 50% от Tablerow, а два других - остальные 50% пространства.Android: Как я могу сосредоточить три текстовых изображения в Tablerow?

| ----------- Текст 1 ------------ | ----- Текст 2 & Текстовое изображение 3 ------ |

| -------------- 50% ----------------- | ----------- -------- 50% ----------------- |

Как центрировать их в середине, что-то вроде этого:

| ----------------- TextView 1 & TextView 2 & TextView 3 --- ------------ |

Как я могу это сделать?

Update: Вот мой макет

<TableRow 
     android:id="@+id/tableRow25" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/Countdoen_lbl" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Let's wait " 
      android:textColor="#2c3e50" 
      android:textSize="12dp" 
      android:textStyle="italic" 
      android:typeface="serif" > 
     </TextView> 

     <TextView 
      android:id="@+id/Countdown1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="" 
      android:textColor="#e74c3c" 
      android:textSize="12dp" 
      android:textStyle="bold|italic" 
      android:typeface="serif" > 
     </TextView> 

     <TextView 
      android:id="@+id/Countdown2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text=" minutes" 
      android:textColor="#2c3e50" 
      android:textSize="12dp" 
      android:textStyle="italic" 
      android:typeface="serif" > 
     </TextView> 
    </TableRow> 
+0

Можете ли вы опубликовать свой код макета? – karvoynistas

+0

@karvoynistas: вопрос обновлен, код добавлен. –

+1

просто используйте линейную линейку с центром тяжести или center_horizontal, если ваш tablerow не находится внутри таблицы, он будет вести себя как linearlayout с горизонтальной ориентацией. – TheRedFox

ответ

1

Попробуйте этот путь,

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <TableLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:orientation="horizontal" > 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Textview 1" /> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Textview 2" /> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Textview 3" /> 
     </TableRow> 
    </TableLayout> 

</LinearLayout> 
0

упоминание layout_width как "0dp" для всех текс tviews

дают layout_weight как "2" для первого Textview1

и layout_weight как "1" каждый для Textview2 & Textview3

и для acheiving 35% 35% 35% разъемные, с первым и последний текст Textviews выравнивается вправо и влево соответственно, а второй текст Textview централизован (пожалуйста, обновите свой вопрос, потому что не все считыватели стековерного потока будут проверять комментарии. Если вы получили правильный ответ, я должен удалить верхнюю часть, описывающую 50 25 25 раскладку)

<TableRow 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:gravity="center" 
       android:orientation="horizontal" > 

       <TextView 
        android:layout_width="0dp" 
        android:layout_weight="1" 
        android:layout_height="wrap_content" 
        android:gravity="right" 
        android:text="Textview 1" /> 

       <TextView 
        android:layout_width="0dp" 
        android:layout_weight="1" 
        android:gravity="center_horizontal" 
        android:layout_height="wrap_content" 
        android:text="Textview 2" /> 

       <TextView 
        android:layout_width="0dp" 
        android:layout_weight="1" 
        android:gravity="left" 
        android:layout_height="wrap_content" 
        android:text="Textview 3" /> 
      </TableRow> 
+0

, если вы можете опубликовать свой файл макета, я могу помочь вам с исправлениями прямо – Aun

+0

Спасибо за ваш ответ .. но это путь вокруг .. то, что я хочу для веса макета, чтобы быть 1 для каждого Textview и все, чтобы быть централизованным посередине. Кажется, что они имеют 2,1,1 в качестве веса, и я не могу изменить его до 1,1,1 !! –

+0

Я не вижу никаких весов, применяемых в вашем макете, как в вопросе .. В пределах 50% 25% 25% областей, вы хотите, чтобы текст был в центре, вы можете использовать android: layout_gravity = "center_horizontal" , но для достижения 50% 25% 25% сплит, вам нужно использовать layout_weight как 2 1 1 и widht как 0dp для всех текстовых просмотров – Aun

0

просто использовать LinearLayout с центром тяжести или center_horizontal, если TableRow не находится внутри таблицы, он будет вести себя как linearlayout с горизонтальной ориентацией