我在一件事情上挣扎。让我们说我有线性布局,设置高度和宽度是match_parent。我将有一定数量的视图1到6,我不知道在运行时我将从服务器收到多少。问题是,我如何在布局中对它们进行排序,以便根据存在的视图数量来扩展它们的宽度?如果有超过3个视图,我需要将它们分成两行。
我在考虑使用布局权重,但是不能考虑可以将它们放到两行的解决方案。有什么想法吗?
答案 0 :(得分:0)
您应该在有根的LinearLayout中使用listview并在其他xml布局中设计单个列表项,为单个列表项创建自定义适配器并将适配器设置为列表视图。 this answer will help you how to create custome adapter
答案 1 :(得分:0)
您必须动态地将视图添加到线性布局。
首先在xml中创建容器布局。
<LinearLayout
android:id="@+id/containerLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
然后检查,
if(list.size()<=3)
{
Then assign weight to container. i.e weight=list.size
for(int i=0;i<size;i++)
{
TextView textview = new TextView(this);
textview.setText(brandName);
textview.setWeight(1f);
container.addView(textview);
}
}
else
{
int totalRows= (list.size/3)+(list.size%3);
int count=0;
for(int i=0;i<totalRows;i++)
{
LinearLayout newLL = new LinearLayout(mContext);
newLL.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
newLL.setOrientation(LinearLayout.HORIZONTAL);
for(int j=count;j<count+3;j++)
{
count++;
TextView textview = new TextView(this);
textview.setText(brandName);
newLL.addView(textview);
}
container.addView(newLL);
}
}
你必须做这样的事情。这不是真正的代码。