установить вес программно на адаптере списка

Я попытался сделать адаптер динамического списка для своих данных, я точно не знаю, сколько элементов у меня будет, поэтому я делаю цикл, создавая текстовые представления и добавляя их в горизонтальный линейный макет, все работает, кроме размера, кажется, там это не способ узнать ширину списка из адаптера, поэтому я попытался установить параметры макета текстовых представлений для работы с весом, но либо он ничего не делает, либо все исчезает.

адаптер getView:

LinearLayout m = (LinearLayout) view.findViewById(R.id.grid_lo);
String[] s = filtered[position];
for(String i:s)
    {
        TableRow.LayoutParams params = new TableRow.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT,1.0f);
        TextView tv = new TextView(context);
        tv.setText(i);
        m.addView(tv,params);
    }

это создает все текстовые представления, но все они просто рисуются один за другим. Я пробовал с LinearLayout.LayoutParams, но это то же самое. Любые другие идеи, которые я мог бы попробовать?


person Gustavo Parrado    schedule 28.11.2013    source источник


Ответы (1)


в первом напишите пользовательский адаптер, чтобы получить параметр макета, а затем вычислить высоту:

AccountCustomAdapter Adt = new AccountCustomAdapter(this,account);
ViewGroup.LayoutParams params = accountLV.getLayoutParams();

params.width = LayoutParams.FILL_PARENT;
params.height = Adt.getGroupCount() * 70;
person Mohammed Saleem    schedule 28.11.2013
comment
что такое AccountCustomAdapter? и почему он используется только для высоты? - person Gustavo Parrado; 28.11.2013
comment
это адаптер, используемый для заполнения данных в списке. - person Mohammed Saleem; 30.11.2013