android - последний добавленный элемент в макет является вертикальной. ЗАЧЕМ? (Ремейк) - PullRequest
0 голосов
/ 23 февраля 2012

[Второе редактирование]

Я нашел, где проблема . Но я не знаю, почему это происходит. Это не может быть маржа на LinearLayout (или просто marginLeft). Кто-нибудь знает, почему он не может иметь?

[Изменено]

Привет У меня есть XML-файл в макете, как показано ниже. И я добавляю TextViews из любого XML-макета в горизонтальный LinearLayout. Эта структура макета дана, и я не могу ее изменить. И последний добавленный TextView растягивается всегда по вертикали. Я не знаю, почему я в полном отчаянии. Слишком много часов я пытался это сделать, но без понятия. Я знаю, что это не в программном добавлении TextViews .. Если кто-то знает, почему это происходит, я буду благодарен.

<RelativeLayout 

android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/back_border"
>

<RelativeLayout 
android:id="@+id/manager_view_table_header"  
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
>  


    <LinearLayout 
    android:id="@+id/layout_for_textViews"
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"                
    android:layout_margin="6px"
    android:layout_alignParentTop="true"
    android:gravity="center_vertical"
    android:background="@drawable/back_border"
    >
      <!--  horizontal layout,    HERE IAM ADDING TEXTVIEWS  -->

    </LinearLayout>

   </RelativeLayout>

<!--What is here its no important
     because, there is RelativeLayout with alignBellow relative layout before  -->

</RelativeLayout>

и дополнение TextView iam к LinearLayout:

<TextView  xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"    
        android:layout_height="wrap_content" 
        android:textSize="15sp"
        android:paddingRight="7px"
        android:paddingLeft="7px"
        android:paddingTop="3px"
        android:paddingBottom="3px"
        android:layout_marginLeft="5px"
        android:gravity="center_horizontal"    
        android:background="@drawable/background_table"
        android:textColor="#330033"
        android:text="Some text"
        />

Ответы [ 3 ]

3 голосов
/ 24 февраля 2012

Попробуйте заменить android: layout_margin = "6px" из LinearLayout на android: padding = "6px".Я думаю, что это решит вашу проблему.Я имею в виду, что новый LInearLayout должен быть таким:

<LinearLayout 
android:id="@+id/layout_for_textViews"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"                
android:padding="6px"
android:layout_alignParentTop="true"
android:gravity="center_vertical"
android:background="#44ff435f"
>
0 голосов
/ 23 февраля 2012

Прежде всего вам необходимо провести рефакторинг этого кода.

Возможно, вы захотите использовать фактические ListView для создания повторяющихся элементов.

и почему xmlns:android="http://schemas.android.com/apk/res/android" объявлено трижды в этом XML-коде, когда это действительно требуется только один раз в верхнем корневом элементе.

Даже с этим макетом, чтобы решить вашу проблему, если другие вещи не работают, хорошей идеей было бы переключиться на Графический макет (нижняя вкладка в eclipse при работе с XML-файлом) и вручную попытаться установить третий.TextView (не просмотр списка) высота вручную, затем вы можете наблюдать за изменениями и соответствующим образом завершать их ..

0 голосов
/ 23 февраля 2012

Я запутался с твоими тремя раскладками. У Ват есть преимущество всех этих вложенных макетов, попробуйте воссоздать текстовые представления с одним относительным макетом и используйте android: layout_above и android: layout_below для размещения текстовых представлений.

...