我可以使用android:gravity="底部|center_horizontal"在xml文本视图上得到我想要的结果,但我需要通过编程来做到这一点。我的textview是在一个表内,如果这是一个相对布局。

我试过:

LayoutParams layoutParams = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL);
labelTV.setLayoutParams(layoutParams);

但如果我理解正确,这将适用于表,而不是textview?


当前回答

使用这段代码

        TextView textView = new TextView(YourActivity.this);
        textView.setGravity(Gravity.CENTER | Gravity.TOP);
        textView.setText("some text");

其他回答

textView.setGravity(Gravity.CENTER | Gravity.BOTTOM);

这将设置你的textview的重力。

你应该使用textView.setGravity(Gravity.CENTER_HORIZONTAL);。

记住使用

LinearLayout.LayoutParams layoutParams =new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
layoutParams2.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL;

不能工作。这将为小部件设置重力,而不是为文本设置重力。

使用这段代码

        TextView textView = new TextView(YourActivity.this);
        textView.setGravity(Gravity.CENTER | Gravity.TOP);
        textView.setText("some text");

这将使文本在文本视图中居中:

TextView ta = (TextView) findViewById(R.layout.text_view);
LayoutParams lp = new LayoutParams();
lp.gravity = Gravity.CENTER_HORIZONTAL;
ta.setLayoutParams(lp);
labelTV.setGravity(Gravity.CENTER | Gravity.BOTTOM);

Kotlin版本(感谢Thommy)

labelTV.gravity = Gravity.CENTER_HORIZONTAL or Gravity.BOTTOM

还有,你说的是重力还是布局重力?后者在相对布局中不起作用。