表中包含Android中的动态列数

时间:2014-01-13 10:32:16

标签: android dynamic multiple-columns

我想在android中创建一个具有动态列数的表我知道如何使用LayoutInflator动态添加行但是如何动态添加列?

感谢您的时间,我们非常感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

你不添加列 - 只有行,之后你可以告诉每个视图需要跨越多少列

android:layout_span 

Defines how many columns this child should span. Must be >= 1. 

Must be an integer value, such as "100". 

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. 

This corresponds to the global attribute resource symbol layout_span.

http://developer.android.com/reference/android/widget/TableRow.LayoutParams.html#attr_android:layout_span

最好的Tuts之一:http://mobile.tutsplus.com/tutorials/android/android-sdk_table-layout/

答案 1 :(得分:0)

使用Listview并为row创建自定义布局。使用水平方向为行

的线性布局
 android:orientation="horizontal"
 android:weightSum="100" // or some other values

在这个线性布局中,您可以添加任意数量的列。您可以通过设置布局权重来控制宽度。您可以在java中动态地执行此操作。并使每个单元格的宽度为零和高度match_parent.So您的文本将正确地包裹在每个细胞中。

设置重量优于直接设置宽度,因为它使用可用空间并且您的表格将在屏幕内正确显示

//修改

在布局中添加线性布局

<LinearLayout 

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:weightSum="100" >

接下来我们必须创建列。实际上它应该是这样的,在这里你得到2个半尺寸的列

<TextView
        android:id="@+id/textview"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="50"
     />
<TextView
        android:id="@+id/textview"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="50"
     />

如果要动态执行此操作,则必须编写代码以在java src中创建Textview或任何其他视图,并将其布局权重设置为100 / no列。 您可以在布局参数中设置权重。