程序表行与文本和按钮

时间:2017-10-13 13:05:09

标签: java android

我有这个布局正确显示我的View,我试图将它与Java端匹配,以便能够动态构建行,但我一直未能实现这一点,

 <TableLayout> 
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
               <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent">

                <LinearLayout
        android:layout_width="200dp"
        android:layout_height="match_parent"
        android:orientation="vertical">

                    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextViewaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaws" />
                </LinearLayout>

                <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />
            </TableRow>
</TableLayout>

我确实想在代码中制作它,我已经多次尝试过,这是我最好的尝试

public static void makeTablePostOrders(Context ct, TableLayout tableLayout_PostOrders,
                                   List<String> postOrders)
{
    TableRow.LayoutParams tableRowParams = new TableRow.LayoutParams(
        TableRow.LayoutParams.WRAP_CONTENT, 
TableRow.LayoutParams.WRAP_CONTENT);

LinearLayout.LayoutParams linearLayoutParams = new LinearLayout.LayoutParams(200,
        LinearLayout.LayoutParams.MATCH_PARENT,1);



//randoms
for(int i = 0; i < postOrders.size()/2 ; i++)
{
    //make tableRow
    TableRow tableRow = new TableRow(ct);
    // make LinearLayout
    LinearLayout layout = new LinearLayout(ct);
    layout.setLayoutParams(linearLayoutParams);
    layout.setOrientation(LinearLayout.VERTICAL);
    //make TextView
    TextView tv = new TextView(ct);
    tv.setText(postOrders.get(i));
    tv.setTextColor(Color.BLACK);
    // make button
    // the button should send us to next view
    Button bt_View = new Button(ct);
    bt_View.setText("Select");

    //adding views
    layout.addView(tv,-2,-2);
    tableRow.addView(layout);
    tableRow.addView(bt_View,-2,-2);
    tableLayout_PostOrders.addView(tableRow,i+1);
}
}

我想要的是使用文本和按钮制作表格ROW,但文本不应该通过屏幕,并且如果需要,它总是垂直向下。

这是一张图片,每一行都有其中一张。

enter image description here

1 个答案:

答案 0 :(得分:1)

根据您的要求实施设计的正确方法是listview或recyclerview。 因此最好使用 Listview / RecycleView ,而不是动态列表行。

列表行的xml如下所示:

  <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/myTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight=".65"
            android:text="You text will come here" />

        <Button
            android:id="@+id/myButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:text="Button" />
    </LinearLayout>