2012-02-07 85 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

相关问题