我正在尝试实现动态文本视图列表,如下图所示: -
这是我的代码: -
LayerDrawable dashboardResShape_community= (LayerDrawable) getResources().getDrawable(R.drawable.upcomingtask_tags_shape);
// The background effect is by the layer list drawable from the above code
LinearLayout tags_view2=(LinearLayout)findViewById(R.id.tags_view);
LayoutParams lp = new LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.setMargins(10, 2, 2, 2);
TextView[] tx = new TextView[15];
for(int i=0; i<15; i++) {
tx[i] = new TextView(getActivity());
tx[i].setPadding(8, 4, 8, 4);
tx[i].setBackground(dashboardResShape_community);
tx[i].setLayoutParams(lp);
tx[i].setText("Tag"+i);
tags_view2.addView(tx[i]);
}
在我的xml中只有一个线性布局: -
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tags_view"
android:orientation="horizontal" >
</LinearLayout>
这就是我所取得的成就: -
当我添加15个文本视图时,只有8个显示如下,其余的应该在下一行,但它们不是。
如果我添加更多的文本视图,它会离开屏幕,但我想在第一行填满时在第二行添加textview。我在这里做错了什么?
答案 0 :(得分:0)
其LinearLayout的限制。 如果您想要解释的行为而不是
答案 1 :(得分:0)
在填充线性布局(屏幕宽度)后,您无法在下一行获得更多文本视图,您已将线性布局方向设置为水平。更好的解决方案是添加一个线性布局或使用相对(做一些子计数编码和设置参数)。我更喜欢你的最佳解决方案是桌面布局。更容易编码代码和处理
答案 2 :(得分:0)
你可以做的是在屏幕上添加尽可能多的文本视图到你的线性布局,但是当文本视图离开屏幕时,你可以在你已经拥有的那个之下添加另一个线性布局,然后添加那个。你可以继续这样做,最终你不会在屏幕上看到任何文字视图。您也可以尝试使用gridview。
以下是此布局的样子: http://developer.android.com/guide/topics/ui/layout/gridview.html 这是文档: http://developer.android.com/reference/android/widget/GridView.html