2010-09-23 37 views
173

我可以在textview中使用xml中的android:gravity="bottom|center_horizontal"來獲得我想要的結果,但我需要以編程方式執行此操作。我的textview在tablerow以內,如果這在relativelayout中很重要。Android以編程方式設置TextView的引力

我曾嘗試:

LayoutParams layoutParams = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL); 
labelTV.setLayoutParams(layoutParams); 

但是,如果我理解正確的話,這將其應用到tablerow,而不是TextView的?

回答

422
labelTV.setGravity(Gravity.CENTER | Gravity.BOTTOM); 

而且,你在說什麼重力或約layout_gravity?後者將無法在RelativeLayout中工作。

+0

謝謝你的工作。我現在覺得有點愚蠢,因爲錯過了這一點。原本問題是在文本字段上設置邊距。我想我假設,因爲我無法找到setGravity不存在的setMargin()方法。 – Nate 2010-09-23 09:17:08

+0

superB ...................... – 2012-07-09 07:54:17

+7

感謝+1,我找到了文檔,但像往常一樣,它只是走了一半,沒有清楚地說明我在哪裏得到重力常數來自(Gravity.CENTER等)。 – 2012-10-09 05:41:38

32

這將圍繞文本視圖中的文本:

TextView ta = (TextView) findViewById(R.layout.text_view); 
LayoutParams lp = new LayoutParams(); 
lp.gravity = Gravity.CENTER_HORIZONTAL; 
ta.setLayoutParams(lp); 
+3

這沒有奏效。 「lp.gravity無法解析或不是字段」 – Nate 2010-09-23 06:01:32

+0

這很奇怪,因爲這段代碼對我來說工作並編譯得很好。你如何設置textview的權重,因爲他們不是setWeight()方法? – radiofrequency 2010-09-25 18:14:15

+4

我發現了這個問題。 Nate正在導入android.view.ViewGroup。那個類有不同的方法,不能編譯。您應該導入android.view.WindowManager。 – Finnboy11 2012-01-14 14:34:50

10

我們可以在任何視圖設置的佈局重心像下面way-

myView = findViewById(R.id.myView); 
myView.setGravity(Gravity.CENTER_VERTICAL|Gravity.RIGHT); 
or 
myView.setGravity(Gravity.BOTTOM); 

這是equilent以下XML代碼

<... 
android:gravity="center_vertical|right" 
... 
.../> 
+0

版面重力與重力不一樣 – 2017-01-18 10:51:10

1

您應該使用textView.setGravity(Gravity.CENTER_HORIZONTAL);

請記住,使用

LinearLayout.LayoutParams layoutParams =new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 
layoutParams2.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL; 

將無法​​正常工作。這將設置小部件的重力,而不是它的文本。

1

使用此代碼

 TextView textView = new TextView(YourActivity.this); 
     textView.setGravity(Gravity.CENTER | Gravity.TOP); 
     textView.setText("some text"); 
0
textView.setGravity(Gravity.CENTER | Gravity.BOTTOM); 

這將設置你的TextView的重力。

相關問題