Я изо всех сил пытаюсь выложить два ListViews в вертикальном LinearLayout. Наконец я увидел ответ об обертывании каждого в своем LinearLayout и добавлении каждого из этих LinearLayouts к исходному LinearLayout с весами 1. Так вот что я пытался ... но я просто не могу заставить это работать.Проблема с двумя списками ListViews
Я делаю все это в коде:
public class MyDualList extends LinearLayout
{
private LinearLayout _layout1;
private LinearLayout _layout2;
private ListView _list1;
private ListView _list2;
public MyDualList(Context context, ListView list1, ListView list2)
{
super(context);
_list1 = list1;
_list2 = list2;
_layout1 = new LinearLayout(context);
_layout1.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 0, 1));
_layout1.addView(_list1, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
_layout2 = new LinearLayout(context);
_layout2.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 0, 1));
_layout2.addView(_list2, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
addView(_layout1);
addView(_layout2);
}
}
Это моя последняя попытка, но я клянусь, что я пробовал все комбинации/установки для высоты LayoutParams' (FILL_PARENT, WRAP_CONTENT, 0), как а также различные веса.
Результат не очень хороший; если мой второй список очень длинный, он неизбежно занимает подавляющее большинство первоначальной вертикальной компоновки (конечно, гораздо больше, чем 50%).
Я не собираюсь сдаваться! Может быть, кто-то может мне немного помочь.
Спасибо, Кена
Не уверен, что это связано, но я думаю, что была разница с методами addView. Можете ли вы попытаться позвонить: 'addView (_layout1, new LayoutParams (LayoutParams.FILL_PARENT, 0, 1));' вместо того, чтобы заранее устанавливать LayoutParams. То же самое для '_layout2'. –
@ Себастиан - это не будет иметь никакого значения. 'addView (aView)' точно так же, как 'addView (aView, aView.getLayoutParams())'. –
Я не совсем уверен, зачем вам нужны _layout1 и _layout2. Почему бы просто не установить высоту _list1 и _list2 в 0, их вес в 1 и добавить их непосредственно в двойной список? –