我有一个项目,我需要以编程方式创建TextView
并将其放在自定义ViewGroup
中。当我实例化textView时,我设置了layoutParams,text,gravity等,然后将其添加到ViewGroup
。然后在onLayout()
的{{1}}方法中尝试定位它(按照Google指南的建议)。
对于textView的文本重力,一切都很好ViewGroup
。只有EXCEPT
似乎有效。整个问题可归结为几行代码,如下所示:
center_horizontal
和XML代码:
public class Custom extends ViewGroup {
TextView mTv;
public Custom(Context context, AttributeSet attrs) {
super(context, attrs);
mTv = new TextView(context);
mTv.setText("can't touch this");
mTv.setGravity(Gravity.CENTER);
ViewGroup.LayoutParams params=new ViewGroup.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
mTv.setBackgroundColor(context.getResources().getColor(R.color.paleblue));
this.addView(mTv,params);
}
public Custom(Context context) {
this(context,null);
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
mTv.layout(l,t,r,b);
}}
文字应位于屏幕中央。谁能解释为什么会这样?感谢