0

我在 XML 文件中声明了一个 TableLayout,它将显示分数,并且这些分数是通过行以编程方式添加的。问题是没有添加任何分数的布局看起来像这样(应该是这样):

正确的

但是当一个分数的行被添加时,它看起来像这样:

错误的

我不明白为什么会发生这种情况,我希望看到列被很好地拉伸,并且没有明显的原因可以解释这种行为。如果有人可以帮助我,我将不胜感激。

在此先感谢并为我的英语感到抱歉。

这是我的 XML 和我的代码:

XML:

<TableLayout xmlns...
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:stretchColumns="*"
android:layout_column="5"
android:id="@+id/scoresTable">
    <TableRow
        android:layout_gravity="center_horizontal"
        android:id="@+id/titleScoresRow"
        android:layout_height="42dp">
        <TextView
            android:id="@+id/scoresTitle"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:text="Best Scores"
            android:layout_span="5"
            android:gravity="center"
        />
    </TableRow>
    <TableRow
        android:layout_gravity="center_horizontal"
        android:id="@+id/firstRow"
        android:layout_height="42dp">
        <TextView
            android:id="@+id/MODE"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:text="MODE"
            android:gravity="center"
            />
        <TextView
            android:id="@+id/KANA"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:text="KANA"
            android:gravity="center"
            />
        <TextView
            android:id="@+id/DIFF"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:text="DIFF"
            android:gravity="center"
            />
        <TextView
            android:id="@+id/SCORE"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:text="SCORE"
            android:gravity="center"
            />
        <TextView
            android:id="@+id/DATE"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:text="DATE"
            android:gravity="center"
            />
    </TableRow>

活动:

 TableLayout table = (TableLayout) findViewById(R.id.scoresTable);
    createOrderedCSV(getApplicationContext(), 4, ":");
    ArrayList<String> scores = readScores("OrderedScoresCSV.csv");
    // Score rows
    for (int i = scores.size() - 1; i >= 0; i--) {
        String[] currentScore = scores.get(i).split(":");
        TextView mode = new TextView(this);
        mode.setText(currentScore[0]);
        TextView kana = new TextView(this);
        kana.setText(currentScore[2]);
        TextView diff = new TextView(this);
        diff.setText(currentScore[1]);
        TextView score = new TextView(this);
        score.setText(currentScore[4]);
        TextView date = new TextView(this);
        date.setText(currentScore[3]);

        TableRow row = new TableRow(this);
        row.addView(mode);
        row.addView(kana);
        row.addView(diff);
        row.addView(score);
        row.addView(date);
        table.addView(row, new TableLayout.LayoutParams(
                TableLayout.LayoutParams.FILL_PARENT,
                TableLayout.LayoutParams.WRAP_CONTENT));
    }
    TableRow buttonRow = new TableRow(this);
    Button eraseScores = new Button(this);
    eraseScores.setWidth(200);
    eraseScores.setHeight(60);
    eraseScores.setText("Erase Scores");
    buttonRow.setGravity(Gravity.CENTER_HORIZONTAL);
    buttonRow.addView(eraseScores);
    table.addView(buttonRow);
4

1 回答 1

0

这是由我在最后添加的按钮行引起的。它附在第一列。

于 2014-08-17T09:46:21.910 回答