添加文本视图动态地将焦点移到线性布局上

时间:2013-12-27 04:30:39

标签: android android-layout android-listview dynamic-data

我正在尝试实现动态文本视图列表,如下图所示: - enter image description here

这是我的代码: -

        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>

这就是我所取得的成就: - enter image description here

当我添加15个文本视图时,只有8个显示如下,其余的应该在下一行,但它们不是。

如果我添加更多的文本视图,它会离开屏幕,但我想在第一行填满时在第二行添加textview。我在这里做错了什么?

3 个答案:

答案 0 :(得分:0)

其LinearLayout的限制。 如果您想要解释的行为而不是

  1. 您必须制作自己的布局/视图refer this link
  2. Impliment LinearLayout水平方向,包裹儿童like this

答案 1 :(得分:0)

在填充线性布局(屏幕宽度)后,您无法在下一行获得更多文本视图,您已将线性布局方向设置为水平。更好的解决方案是添加一个线性布局或使用相对(做一些子计数编码和设置参数)。我更喜欢你的最佳解决方案是桌面布局。更容易编码代码和处理

答案 2 :(得分:0)

你可以做的是在屏幕上添加尽可能多的文本视图到你的线性布局,但是当文本视图离开屏幕时,你可以在你已经拥有的那个之下添加另一个线性布局,然后添加那个。你可以继续这样做,最终你不会在屏幕上看到任何文字视图。您也可以尝试使用gridview。

以下是此布局的样子: http://developer.android.com/guide/topics/ui/layout/gridview.html 这是文档: http://developer.android.com/reference/android/widget/GridView.html