在listview适配器中以编程方式设置权重

时间:2013-11-28 00:28:47

标签: android android-layout listview android-listview android-adapter

我已经尝试为我的数据创建一个动态listview适配器,我不确切知道我将拥有多少项,所以我创建一个循环创建textviews并将它们添加到水平linearlayout,一切正常,除了大小,似乎无法从适配器中知道列表宽度,所以我尝试将textviews的layoutparams设置为使用权重,但要么它什么都不做,要么一切都消失了。

适配器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,但它是一样的。 我可能会尝试其他任何想法吗?

1 个答案:

答案 0 :(得分:0)

在第一个写自定义适配器中获取布局参数 然后计算高度:

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

params.width = LayoutParams.FILL_PARENT;
params.height = Adt.getGroupCount() * 70;