TableLayout不居中

时间:2011-11-30 06:40:19

标签: android android-layout

这是我的xml:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/test"
android:layout_width="fill_parent"
android:layout_height="fill_parent" 
android:gravity="center" >
<TableRow
    android:id="@+id/tableRow1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    >
    <TextView
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center" />
    <TextView
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center" />
</TableRow>

我动态生成其余部分。

现在它将它水平居中放在屏幕上,但一切都在左侧。我知道这是一个简单的修复,但我似乎无法做到正确。

这是我的手动代码:

for(Item l : leaders)
    {
        // Make a new row
        TableRow row = new TableRow(this);
        row.setBackgroundColor(Color.DKGRAY);

        TextView name= new TextView(this);
        TextView score = new TextView(this);

        createView(row, name, l.getName());
        createView(row, score, String.valueOf(l.getScore()));

        name.setTextColor(Color.MAGENTA); // Just to distinguish between the columns
        // Add row to table layout
        tl.addView(row);
    }
}

private void createView(TableRow row, TextView textView, String string)
{
    textView.setText(string);
    textView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    textView.setTextColor(Color.CYAN);
    textView.setTextSize(32);
    textView.setPadding(20, 0, 0, 0);
    row.setPadding(0, 1, 0, 1);
    row.addView(textView);
}

此外,给定的答案并没有改变布局。

3 个答案:

答案 0 :(得分:1)

如果有人遇到同样的问题,诀窍是设置

  

机器人:stretchColumns = “0”

在TableLayout和

  

机器人:layout_gravity = “中心”

     

机器人:layout_width = “match_parent”

在行内的内容视图中。

答案 1 :(得分:0)

您可以在父级布局的中心设置布局_Gravity Center for Table Layout 如

android:layout_gravity="center"

您可以设置重力中心

myTableLayout.setGravity(Gravity.CENTER);

答案 2 :(得分:0)

我认为你应该在表格布局而不是android:layout_gravity="center"中写android:gravity="center"