android align以编程方式查看

时间:2012-09-12 15:16:27

标签: android

我有一个包含一些TextView的LinearLayout。我设置了

android:gravity="center_horizontal"

表示父布局和结果如下所示(对于N = 2):

enter image description here

我希望它看起来像

enter image description here

换句话说,我希望它们与左边对齐。更确切地说,我的计划是找到最长的TextView,然后将其他TextView对齐到该视图的左边界。任何人都可以解释我在我的Activity回调中可以做到吗?我试过了

public void onCreate(Bundle savedInstanceState)

textView.getWidth()

(我用来查找最长的TextView)为所有textViews返回0。 第二个问题是:我应该使用什么方法来移动TextView“n”像素?

1 个答案:

答案 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”?