我有一个包含一些TextView的LinearLayout。我设置了
android:gravity="center_horizontal"
表示父布局和结果如下所示(对于N = 2):
我希望它看起来像
换句话说,我希望它们与左边对齐。更确切地说,我的计划是找到最长的TextView,然后将其他TextView对齐到该视图的左边界。任何人都可以解释我在我的Activity回调中可以做到吗?我试过了
public void onCreate(Bundle savedInstanceState)
但
textView.getWidth()
(我用来查找最长的TextView)为所有textViews返回0。 第二个问题是:我应该使用什么方法来移动TextView“n”像素?
答案 0 :(得分:1)
嗯,看起来最简单的方法就是将LinearLayout嵌入到另一个Layout中,而不是试图手工完成。
可能的方法:
RelativeLayout with gravity:center
Linear Layout with gravity:left and wrap_content as size
TextView1, wrap_content
TextView2
...
这应该可以解决问题!
顺便说一句,如果你尝试对布局做任何事情,覆盖onCreate永远不会工作!只有在绘图框架完成一个“onMeasure”和一个“onLayout”循环后,才会定义布局。一种(hacky)确保方式的方法就是推迟代码(例如,使用“View.postDelayed(..)”。更好的方法是在onCreate方法中添加一个自定义的,不可见的视图。 onDraw第一次被调用,你可以确定至少第一个布局周期已经完成。所有的视图应该返回它们的实际大小。在移动视图方面:您是否看过“View.setOffset”?