2014-02-06 3 views
20

Сначала извините за мой слабый английский язык!Как правильно построить линейную схему справа налево

Я разработал макет. Это часть макета:

<ScrollView 
    android:id="@+id/scrollView1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="5dip" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@drawable/shape_details" 
     android:orientation="vertical" 
     android:padding="10dip" > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:gravity="right" > 

      <TextView 
       android:id="@+id/txt_details_ostan" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:gravity="right" 
       android:text="Medium Text" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="#0000FF" /> 


      <TextView 
       android:id="@+id/textView3" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="استان" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="#AA0000" /> 
     </LinearLayout> 

Предпочтительное направление движения справа налево. Красные цвета - это тема, а синие - текст, который будет считываться из базы данных.

Проблема заключается в том, что текст имеет много символов, и, если показано в этом макете, тема исчезнет из-за того, что мой макет «слева направо», а текст заполняет всю макет.

Я много искал, но я не могу найти способ изменить макет «справа налево».

ответ

12

Попробуйте сделать это:

  1. Изменение LinearLayout к RelativeLayout
  2. Совместите тему родителю право
  3. Поместите предмет текст слева от темы

Вот пример:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/scrollView1" 
    android:layout_width="match_parent" 
    android:layout_height="fill_parent" 
    android:padding="5dip" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:padding="10dip" > 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:gravity="right" > 

      <TextView 
       android:id="@+id/textView3" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:text="استان" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="#AA0000" /> 

      <TextView 
       android:id="@+id/txt_details_ostan" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:gravity="right" 
       android:layout_toLeftOf="@+id/textView3" 
       android:text="This is a sample of a long message. It will not push the topic off screen." 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="#0000FF" /> 

     </RelativeLayout> 
    </LinearLayout> 
</ScrollView> 
+0

Всё нормально! Большое спасибо – Sadegh

+1

android: layoutDirection = "rtl" это лучшее решение, как показано на рисунке: https://developer.android.com/reference/android/view/View.html#attr_android:layoutDirection – coder

2

Добавьте, пожалуйста, следующую строчку:

android:layoutDirection="rtl" 
android:layout_alignParentRight="true" 
Смежные вопросы