代码中的setGravity不起作用

时间:2014-04-14 08:42:30

标签: android android-edittext

在程序中我有EditText。我想,在代码中设置文本Gravity

{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    int size = 40;
    TableLayout tl;
    tl = (TableLayout)findViewById(R.id.layout);
    TableRow tr;
    tr = (TableRow)findViewById(R.id.tableRow);

    EditText et = new EditText(this);
    TableRow.LayoutParams params = new TableRow.LayoutParams();
    params.height = size;
    params.width = size;
    et.setLayoutParams(params);
    et.setBackgroundColor(Color.BLUE);
    et.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL);

    et.setTextSize(size - size / 4);
    et.setText("3");
    tr.addView(et);
}

我的XML:

<TableLayout
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:id="@+id/layout"
     xmlns:android="http://schemas.android.com/apk/res/android">

    <TableRow
         android:id="@+id/tableRow"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent">

   </TableRow>
</TableLayout>

但是,在屏幕上我可以看到:

enter image description here

如何在代码中设置文本重力(水平和垂直)?

3 个答案:

答案 0 :(得分:0)

试试这个..

尝试为GravityTableLayout

设置TableRow
tl.setGravity(Gravity.CENTER);
tr.setGravity(Gravity.CENTER);

答案 1 :(得分:0)

您可以将xml添加到问题中吗?元素对不同类型的布局有不同的反应。即使您指定了引力,如果您没有正确的布局,它也不会移动。

答案 2 :(得分:0)

您也可以在布局参数上设置重力:

params.gravity = Gravity.CENTER;