android TableLayout 添加行动态只添加最后一行

android TableLayout adding rows dynamically adds only the last row

在阅读了 Whosebug 上的数十个线程之后。 我正在尝试向 table 布局动态添加行。 问题是,只有一行是动态添加的,而且它跨越了整个页面。 这是我的代码:

package com.example.trashproject;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TableRow.LayoutParams;

public class MainActivity extends FragmentActivity{


    private static final int ROWS =2;
    private static final int COLS = 10;
    private static final String TAG = null;
    private TableLayout mTable;
    private View[][] mCircles;
    private boolean[][] mData;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        makeTable();

    }

    private void makeTable() {
        mTable = (TableLayout) findViewById(R.id.table);

        TableRow.LayoutParams rowParams = new TableRow.LayoutParams();
        rowParams.width = LayoutParams.WRAP_CONTENT;
        rowParams.height = LayoutParams.WRAP_CONTENT;
        mCircles = new View[ROWS][COLS];
        TableRow row;
        for (int i = 0; i < ROWS; i++) {
            row = new TableRow(this);
            row.setLayoutParams(rowParams);
            for (int j = 0; j < COLS; j++) {
                mCircles[i][j] = new View(this);
                mCircles[i][j].setBackgroundResource(R.drawable.small_circle);
                row.addView(mCircles[i][j]);
            }
            mTable.addView(row);
        }
    }

activity_main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TableLayout
        android:id="@+id/table"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
    <TableRow >
        <TextView 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TEXT"/>
    </TableRow>
    <TableRow >
        <TextView 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TEXT"/>
    </TableRow>
    </TableLayout>

</LinearLayout>

calendar_month_grid.xml:

<?xml version="1.0" encoding="utf-8"?>
<View xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/view1"
    android:layout_width="wrap_content"
    android:layout_height="1dp"
    />

small_circle.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval" >
    <size android:width="15dp"
        android:height="1dp"/>
    <solid android:color="@android:color/holo_green_light"/>

</shape>

感谢您的帮助...

我认为 "View" 给您带来了问题。尝试用 ImageView 替换它(尝试一下),我认为它会起作用。如果您真的想要查看(不确定为什么),请将最小高度和最小宽度设置为 10dp 之类的值。

有一次我遇到过,带有环绕内容的空视图横跨整个页面。它会将您的其余行推出屏幕