Выравнивание текстовых представлений - PullRequest
1 голос
/ 24 мая 2011

Я занимаюсь разработкой приложения для Android, относительная схема которого приведена ниже.

Вот небольшая ссылка на то, как приложение показывает на экране: http://imgur.com/c4rNJ. Я бы хотел, чтобы «Текст 1» отображался прямо над «ленивой лисой». Надеюсь, это поможет уточнить, чего я хочу достичь.

    <?xml version="1.0" encoding="utf-8"?>

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content" android:layout_width="fill_parent"
    android:background="@color/white">

    <TextView android:id="@+id/text1" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:layout_marginLeft="0dip"


        android:textColor="@color/black" android:text="Text 1" android:lines="1"
        android:scrollHorizontally="true" android:ellipsize="end" />

    <Button android:id="@+id/checkBox" android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:drawableRight="@drawable/checkbox_unchecked_30"
        android:layout_below="@+id/text1" android:background="@color/white" />

    <TextView android:id="@+id/text2" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:layout_toRightOf="@+id/checkBox"
        android:layout_alignTop="@+id/checkBox" android:layout_below="@+id/text1"


        android:textColor="@color/black" android:text="a lazy fox jumped over the dam and said help"

        android:lines="1" android:scrollHorizontally="true" android:ellipsize="end" />

    <TextView android:id="@+id/text3" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:layout_toRightOf="@+id/checkBox"
        android:layout_below="@+id/text2" android:textColor="@color/black"
        android:text="Text 3" />

    <TextView android:id="@+id/text4" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:layout_below="@+id/text2"
        android:layout_toRightOf="@+id/text3" android:textColor="@color/black"
        android:text="Text 4" />

    <TextView android:id="@+id/text5" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:layout_below="@+id/text2"
        android:layout_toRightOf="@+id/text4" android:textColor="@color/black"
        android:text="Text 5" />

</RelativeLayout>

Я хочу, чтобы «Текст 1» появлялся прямо над текстом, начинающимся с «ленивая лиса ...». Прямо сейчас «Текст 1» появляется над флажком. Я не уверен, как достичь вышеизложенного. Я пробовал разные вещи, но ничего не получается. Что я должен делать, чтобы достичь желаемого макета?

Ответы [ 4 ]

3 голосов
/ 24 мая 2011

Вам необходимо добавить атрибут layout_alightLeft к вашему text1:

<TextView android:id="@+id/text1" 
    android:layout_alignLeft="@+id/text2"
    ...
/>

enter image description here


Полный файл макета:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent">

    <TextView android:id="@+id/text1" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_marginLeft="0dip"
        android:layout_alignLeft="@+id/text2"
        android:text="Text 1"
        android:lines="1"
        android:scrollHorizontally="true" 
        android:ellipsize="end" />

    <Button
        android:id="@+id/checkBox" 
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"        
        android:layout_below="@+id/text1"
        android:text="button"  />

    <TextView 
        android:id="@+id/text2" 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:layout_toRightOf="@+id/checkBox"
        android:layout_alignTop="@+id/checkBox" 
        android:layout_below="@+id/text1"         
        android:text="a lazy fox jumped over the dam and said help"
        android:lines="1" 
        android:scrollHorizontally="true"
         android:ellipsize="end" />

    <TextView 
        android:id="@+id/text3" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_toRightOf="@+id/checkBox"
        android:layout_below="@+id/text2"        
        android:text="Text 3" />

    <TextView 
        android:id="@+id/text4" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_below="@+id/text2"
        android:layout_toRightOf="@+id/text3"        
        android:text="Text 4" />

    <TextView
        android:id="@+id/text5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/text2"
        android:layout_toRightOf="@+id/text4"        
        android:text="Text 5" />

</RelativeLayout>
2 голосов
/ 10 июня 2011

Я нацелился на Android 1.5, в котором прямые ссылки не работают в RelativeLayout.Прямые ссылки были впервые реализованы в Android 1.6 (см .: http://developer.android.com/resources/articles/ui-1.6.html), и поэтому ни одно из предложенных решений другими не работало.

1 голос
/ 24 мая 2011

Если я правильно понимаю ваше требование, вы хотите, чтобы текст1 отображался прямо выше / выровнялся с "ленивой лисой ...".

Попробуйте изменить определение первого TextView следующим образом (обратите внимание на последний атрибут):

    <TextView
    android:id="@+id/text1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="0dip"
    android:textColor="@color/black"
    android:text="Text 1"
    android:lines="1"
    android:scrollHorizontally="true"
    android:ellipsize="end"
    android:layout_alignLeft="@+id/text2" />

РЕДАКТИРОВАТЬ: Вот полный файл макета:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:background="@android:color/white">

<TextView
    android:id="@+id/text1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="0dip"
    android:textColor="@android:color/black"
    android:text="Text 1"
    android:lines="1"
    android:scrollHorizontally="true"
    android:ellipsize="end"
    android:layout_alignLeft="@+id/text2" />

<Button
    android:id="@+id/checkBox"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:layout_below="@+id/text1"
    android:drawableRight="@drawable/checkbox_unchecked_30"
    android:background="@android:color/white" />

<TextView
    android:id="@+id/text2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/checkBox"
    android:layout_alignTop="@+id/checkBox"
    android:layout_below="@+id/text1"


    android:textColor="@android:color/black"
    android:text="a lazy fox jumped over the dam and said help"

    android:lines="1"
    android:scrollHorizontally="true"
    android:ellipsize="end" />

<TextView
    android:id="@+id/text3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/checkBox"
    android:layout_below="@+id/text2"
    android:textColor="@android:color/black"
    android:text="Text 3" />

<TextView
    android:id="@+id/text4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/text2"
    android:layout_toRightOf="@+id/text3"
    android:textColor="@android:color/black"
    android:text="Text 4" />

<TextView
    android:id="@+id/text5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/text2"
    android:layout_toRightOf="@+id/text4"
    android:textColor="@android:color/black"
    android:text="Text 5" />
</RelativeLayout>
0 голосов
/ 24 мая 2011

Я думаю, вы должны добавить android: layout_below="@id/editText2" к text1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...