2012-02-07 100 views
26

我想在將它添加到xml文件的主窗口後重置textView高度。以編程方式重新設置TextView高度

一個RelativeLayout的內部,

<TextView 
     android:id="@+id/text_l" 
     android:layout_width="50sp" 
     android:layout_height="50sp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginLeft="10sp" 
     android:layout_marginTop="145dp" 
     android:gravity="center" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:textColor="#000000" > 
    </TextView> 

我只想把它從50到70改變:

我想:

TextView text = (TextView)findViewById(R.id.text_l); 
text.setHeight(70); 

,但什麼都沒有改變。

+0

試試這個:http://stackoverflow.com/questions/3522224/how-to-dynamic-set-textview-height-android – 2012-02-07 11:33:03

回答

70

你應該通過LayoutParams改變:

LayoutParams params = (LayoutParams) textView.getLayoutParams(); 
params.height = 70; 
textView.setLayoutParams(params); 

編輯

你不應該使用在像素尺寸在你的代碼,使用尺寸爲這樣:

dimens.xml:

<dimen name="text_view_height">50dp</dimen> 

代碼:

params.height = getResources().getDimensionPixelSize(R.dimen.text_view_height); 
+1

謝謝你,那真的有效:D – Q8yDev 2012-02-07 22:06:54

+0

這裏的bizare是:textview.setheight(...)在我的一些測試設備上工作即使與TextView的setHeight函數的文檔不同,它不會更改視圖的佈局參數。但是在我的一個測試設備(Xperia ray,Android 4.0.4)中,這隻能在橫向模式下使用,而不能在縱向模式下使用。按照您的建議更改佈局參數中的高度可以在我的所有測試設備上正常工作。 – Nantoka 2013-06-17 23:48:51

+0

它沒有爲我工作。我擔心它不適用於更新的API。 一旦TextView被分層後,TextView中的高度設置就不起作用了。 – cesards 2017-03-08 12:01:17

3

您可以通過

​​
6

動態設置寬度和TextView的高度務實您可以設置TextView的高度,如:

private TextView mTxtView; 
int height = 50; //your textview height 
mTxtView.getLayoutParams().height = height; 
+3

我喜歡這樣做,而不是找到正確的Layoutparams類 – Roisgoen 2015-12-15 23:44:12

+0

這是真的@Roisgoen – 2015-12-16 04:48:22

+0

需要特別注意的是,如果使用textView來getLayoutParams(),那麼最好是判斷null? – BertKing 2017-11-16 10:52:16

相關問題