【发布时间】:2010-11-10 15:22:13
【问题描述】:
有没有人尝试编写自己的 ViewGroup 实现,其中包含一些 TextView?
我有一个问题,这种实现中的 TextViews 不尊重重力属性 TextView.setGravity(Gravity.CENTER) 并且文本位于左上角。
谁能帮我找出原因?
编辑:
好的。没关系,我已经自己想通了。
如果大家有兴趣,我只是重写了方法onMeasure()(对于我所有的TextViews)并将调用从super.onMeasure()更改为setMeasuredDimension(int, int),重力开始正常工作。
基本上,在我的自定义布局中,我使用以下类来显示文本:
private static class GravityTextView extends TextView {
public GravityTextView(Context context) {
super(context);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
setMeasuredDimension(widthMeasureSpec, heightMeasureSpec);
}
}
【问题讨论】:
-
感谢分享!注意,我也必须从 TextViews 上的 onLayout 调用 measure。所以像上面那样覆盖 onMeasure 并调用 measure。
-
尝试设置线性/相对布局的重力
标签: android