2014-05-03 3 views
2

Как добавить вид на TableRow справа налево? режим по умолчанию - слева направо. Я пробовал android:gravity="right" и android:layout_gravity="right" внутри обоих TableLayout и TableRow но не работал. , например:Как сделать TableRow справа налево

<TableLayout 
    android:id="@+id/tableLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="right" 
    android:layoutDirection="rtl" 
    android:stretchColumns="*" > 

    <TableRow 
     android:id="@+id/tableRow1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="right" 
     android:gravity="right" 
     android:layoutDirection="rtl"> 

     <Button 
      android:id="@+id/button1" 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Button" /> 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Medium Text" /> 
    </TableRow> 
</TableLayout> 

результат button1 слева и textView1 на правом, но мне нужно наоборот.

+0

Пожалуйста, ваш код XML, и я могу помочь. – furkick

+0

Я делаю это динамически –

+0

Вы имеете в виду прагматично в Java? – furkick

ответ

1
ViewCompat.setLayoutDirection(tableRow,ViewCompat.LAYOUT_DIRECTION_RTL); 
2

Ваш ответ прост. Как и в любой таблице, первая запись, которую вы выбрали, появится сначала, в вашем случае button1, вам нужно, чтобы это было TextView для ее размещения перед кнопкой1.

<TableLayout 
    android:id="@+id/tableLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="right" 
    android:layoutDirection="rtl" 
    android:stretchColumns="*" > 

    <TableRow 
     android:id="@+id/tableRow1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="right" 
     android:gravity="right" 
     android:layoutDirection="rtl"> 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Medium Text" /> 

     <Button 
      android:id="@+id/button1" 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Button" /> 


    </TableRow> 
</TableLayout> 
+1

Вы полностью не поняли мой вопрос. «первый» - это где? право или лево? :) по умолчанию LTR, мне нужен RTL-чувак. Я сказал вам, что я делаю это динамически, этот XML - всего лишь пример –

+0

Если вы проверили XML, который я предоставил, то кнопка 1 появится справа, а текст теперь слева, как вы заявили, что хотите? – furkick

+0

: | Я не хочу менять порядок добавления просмотров чувака! рассмотрим, что у меня есть массив представлений от индекса 0 до n, я хочу добавить view [0] справа от TableRow not view [n] –