【问题标题】:Add two textviews side by side in a TableLayout dynamically动态地在 TableLayout 中并排添加两个文本视图
【发布时间】:2017-12-06 17:20:29
【问题描述】:

我正在尝试在表中动态添加行。我需要在每一行中并排添加两个 TextView。这必须动态完成。我已经编写了动态创建行的代码。我无法在侧面添加第二个 TextView。

activity.xml

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:stretchColumns="0,1"
    android:id="@+id/tableView" 
    android:layout_weight="1"         
    android:layout_height="wrap_content" 
    android:layout_width="match_parent">
</TableLayout>`

MainActivity.java

    TableLayout ll = (TableLayout) findViewById(R.id.tableView);
    for (int i = 0; i <2; i++) {

        TableRow row= new TableRow(this);
        TableRow.LayoutParams lp = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT);
        row.setLayoutParams(lp);
        TextView qty = new TextView(this);
        qty.setText("10");
        row.addView(qty);
        ll.addView(row,i);
    }

【问题讨论】:

    标签: java android dynamic rows android-tablelayout


    【解决方案1】:

    你忘了设置LayoutParams

    TableLayout ll = (TableLayout) findViewById(R.id.tableView);
    for (int i = 0; i < 2; i++) {
    
        TableRow row = new TableRow(this);
        row.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
    
        TextView qty = new TextView(this);
        qty.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
        qty.setText("10");
        row.addView(qty);
    
        ll.addView(row);
    }
    

    【讨论】:

      【解决方案2】:

      试试这个:

      TableLayout ll = (TableLayout) findViewById(R.id.tableView);
      TableRow row= new TableRow(this);
      for (int i = 0; i <2; i++) {
          TableRow.LayoutParams lp = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT);
          row.setLayoutParams(lp);
          TextView qty = new TextView(this);
          qty.setText("10");
          row.addView(qty);
      }
      ll.addView(row);
      

      您添加了两个不同的行,每个行都有一个 TextView,而不是一行有两个 TextView。

      你需要两个级别的for。

      【讨论】:

        猜你喜欢
        • 2019-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多