Весовые пропорции, не соблюдаемые во вложенном LinearLayout - PullRequest
1 голос
/ 23 декабря 2011

У меня есть код, подобный следующему:

...
    <LinearLayout
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content"
       android:weightSum="10">

    <LinearLayout
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" /> 

    <LinearLayout
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="8"> 

    <TextView android:id="@+id/text2"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" /> 

     </LinearLayout>
...

Этот код вложен в другие линейные макеты, которые имеют одинаковый вес и вес.Я использую SDK 1.6 Android.Я не могу понять, почему количество места, назначенного элементам с весом, равным 1, отличается, если я удаляю TextView в середине.Кажется, что даже если размер текста (количество символов) для TextView больше, LinearLayout s с весом 1 становится меньше .. Как это возможно?

Ответы [ 3 ]

3 голосов
/ 27 декабря 2011

Я нашел решение. Практически мне нужно было установить Layout_width каждого контейнера со свойством weight в 0px.

0 голосов
/ 27 декабря 2011

AFAIK, вес в линейной раскладке не такой уж линейный. Компонент с наибольшим весом выигрывает все дополнительное пространство. Для игры с макетами я настоятельно рекомендую последнюю версию IntelliJ Idea - Даже в бесплатной версии Comminity есть плагин для Android с действительно полезным предварительным просмотром макета.

0 голосов
/ 23 декабря 2011

Из того, что я могу сказать, кажется, что ваш вес должен быть 12, а не 10. Первый LinearLayout имеет вес = 2, второй вес = 8 и третий вес = 2.

Это может решить вашу проблему!

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