Android 设置代码中的重力不工作

Android 设置代码中的重力不工作,android,android-edittext,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)fi

在程序中,我有
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>

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

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

试试这个

尝试为
TableLayout
TableRow
设置
Gravity

tl.setGravity(Gravity.CENTER);
tr.setGravity(Gravity.CENTER);

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

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

params.gravity = Gravity.CENTER;

你应该使用谷歌提供的虚拟手机软件,这样你就有了更多的信息来调试你的布局。静态布局也有同样的问题吗。也许你可以更好地使用屏幕截图功能。而不是把你的手机放在扫描仪上。你的想法设置在屏幕上的中间编辑文本中。我只需要编辑文本的中心文本(数字)。@user3483899只需使用
et.setGravity(Gravity.center)设置重力(重心);与图片上的效果相同。@user3483899指定EditText的高度和宽度,然后尝试使用height=50和width=100