【发布时间】:2018-04-03 17:05:18
【问题描述】:
我知道这个问题在 SO 上已经被问过很多次了。我已经阅读了其中的大部分内容,但它们对我不起作用,所以不要费心标记重复。
这是我的代码,以及迄今为止我尝试过的:
RelativeLayout container = new RelativeLayout(this.getContext());
TextView tv = new TextView(this.getContext());
tv.setText(txt); // a single digit like '3'
tv.setLines(1);
tv.layout(0, offsety, cellszie, offsety+cellsize);
tv.setTextAlignment(TextView.TEXT_ALIGNMENT_CENTER);
tv.setGravity(Gravity.CENTER);
// I also tried CENTER_VERTIAL and the following line
// tv.setGravity(CENTER_VERTIAL| CENTER_HORIZONTAL);
// I also tried giving LayoutParams to tv like this:
// tv.setLayoutParams(new LayoutParams(cellsize, cellsize));
// tv.setLayoutParams(new LayoutParams(WRAP_CONTENT, WRAP_CONTENT));
// tv.setLayoutParams(new LayoutParams(MATCH_PARENT, MATCH_PARENT));
container.addView(tv);
字符水平居中,但它垂直浮动在 TextView 的顶部。设置 gravity 和 LayoutParams 不会改变它的行为。
我应该怎么做才能使它垂直居中?
【问题讨论】:
-
你试过把它的宽高设为wrap_content吗?
-
设置布局参数并设置高度以匹配父级.. 然后 center_vertical 将起作用
-
@R.R.M 我已经尝试过
wrap_content和match_parent。 -
好的,然后尝试将 relativeLayout 的参数设置为 match_parent
标签: java android textview alignment