2010-11-10 79 views
11

有沒有人試圖寫他自己的實現ViewGroup與一些TextViews呢?TextView重力

我有一個問題,在這樣的實現TextViews不尊重重力屬性TextView.setGravity(Gravity.CENTER)和文本位於左上角。

任何人都可以幫我找出原因嗎?

編輯:

確定。沒關係,我已經自己想清楚了。

如果enyone有興趣,我只是改寫方法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); 
    } 

} 
+0

很酷,感謝分享! – 2010-11-16 13:58:10

+0

感謝分享!一個說明,我不得不從onLayout在TextViews上調用度量。因此,如上所述重寫onMeasure並調用度量。 – 2011-08-20 07:48:51

+0

嘗試設置線性/相對佈局的重力 – 2014-10-28 11:28:22

回答

3

這是不是你只是想設置錯誤屬性錯誤的行爲。

With TextView.setGravity(Gravity.CENTER)您正在設置TextView內容的重力。

你在找什麼是layout_gravity

+0

這正是我想要做的。 例如,如果我的TextView位於自定義佈局中的某個隨機位置,並且它佔用了200像素的空間,並且其中的文本只有50像素,我希望該文本在該TextView的中心對齊(所以TextView將會仍然保持200px的空間,但文本將位於它的中間,使得TextField邊框和實際文本之間的距離爲75px)。 – 2010-11-11 08:00:48