У меня есть макет, и я хочу, чтобы компоненты заполняли оставшуюся часть экрана (с использованием весов). Listview работает отлично.
Две кнопки в конце работают так же, как и я, но я получаю предупреждение: "Вложенные веса вредны для производительности".
Я думаю, что это проблема, потому что я уже использовал весовой параметр для ListView, потому что, когда я удаляю listview, предупреждение исчезает.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/listMessages_messages"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_marginBottom="5dip"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:layout_marginTop="10dip"
android:layout_weight="1"
android:background="#000000" >
</ListView>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="50"
android:visibility="invisible" />
<Button
android:id="@+id/btnNewConversation_message"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginRight="5dip"
android:layout_weight="50"
android:onClick="newConversation"
android:text="@string/NewConversation" />
</LinearLayout>
</LinearLayout>
Проверьте этот код. Я не получаю предупреждение
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="fill_parent"
android:orientation="vertical"
android:weightSum="10">
<ListView android:id="@+id/listMessages_messages"
android:layout_width="fill_parent" android:layout_height="0px"
android:layout_marginBottom="5dip" android:layout_marginLeft="10dip"
android:layout_marginRight="10dip" android:layout_marginTop="10dip"
android:layout_weight="8" android:background="#000000">
</ListView>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="0px" android:orientation="horizontal"
android:weightSum="10" android:layout_weight="2">
<Button android:layout_width="0px"
android:layout_height="wrap_content" android:layout_weight="5"
/>
<Button android:id="@+id/btnNewConversation_message"
android:layout_width="0px" android:layout_height="wrap_content"
android:layout_marginRight="5dip" android:layout_weight="5"
android:onClick="newConversation" />
</LinearLayout>
</LinearLayout>
Когда вы размещаете оба вида 1.List View 2.Linear Layout (Две кнопки), вам нужно дать свойство веса, чтобы правильно их отрегулировать, а для горизонтального divison для кнопок также придать некоторую весовую ценность второму линейному макету разделить его равномерно с помощью весов. примечание во втором линейном макете я использовал ширину для кнопок до 0px
Если я правильно понял ваш вопрос, пожалуйста, выполните следующие действия: (скажем, около 10) с верхним расположением, придающим некоторый вес ListView, например 5 или 6, убедитесь, что свойство высоты макета установлено на 0px. Создайте дочерний элемент. Линейная компоновка дает оставшийся вес (т.е. 10- вес списка) как layout_weight для дочернего макета для дочернего макета layout_height, чтобы быть 0px с в этом макете, что две кнопки. Надеюсь, это то, что вам нужно