2012-09-12 21 views
0

我有一個包含一些TextView的LinearLayout。我設置安卓對齊以編程方式查看

android:gravity="center_horizontal" 

父佈局和結果看起來如下(對於N = 2):

enter image description here

我希望它看起來像

enter image description here

在其它單詞,我希望它們與左邊對齊。更確切地說,我的計劃是找到最長的TextView,然後將其他TextView與該視圖的左邊界對齊。任何人都可以解釋我在什麼回調我的活動我可以做到嗎?我試圖

public void onCreate(Bundle savedInstanceState) 

textView.getWidth() 

(我用它來尋找最長的TextView)的所有textViews返回0。 第二個問題是:我應該用什麼方法移動一個TextView「n」像素?

回答

1

嗯,它看起來像最簡單的路線是將LinearLayout嵌入到另一個佈局中,而不是試圖手動完成。

可能的方法:

RelativeLayout with gravity:center 
    Linear Layout with gravity:left and wrap_content as size 
    TextView1, wrap_content 
    TextView2 
    ... 

這應該做的伎倆!

順便說一句,如果你試圖做任何與佈局,重寫onCreate將永遠不會工作!只有在繪圖框架完成一個「onMeasure」和一個「onLayout」循環後,佈局纔會被定義。確保這種方法是簡單地推遲代碼(例如,使用「View.postDelayed(..)」。更好的方法是在onCreate方法中添加一個自定義的不可見視圖。 onDraw第一次被調用,你可以確定至少第一個佈局週期已經完成,然後所有視圖都會返回它們的實際大小

在移動方面Views:你看看「View」。 setOffset「?

+0

從來沒有發生過使用輔助佈局的技巧,非常感謝您的回答。 – Nick