当我使用setText()时,TextView会改变大小

时间:2013-02-14 11:25:22

标签: android

我有两个问题:

1) 我有几个TextView以这种方式创建

<TextView
    android:id="@+id/listaNumeriTextView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:background="#CCCCCC"
    android:gravity="center"/>

当我调用setText()时,TextView的大小会根据文本的长度而变化。我试图调用invalidate()但我仍然有同样的问题。我该如何解决?

2)我想我可以根据屏幕尺寸设置TextView的宽度。例如,如果我在同一行上有2个TextView,我可以执行此textViewSize = screenSize / 2。 这是设置视图宽度的正确方法吗?

3 个答案:

答案 0 :(得分:2)

1)对第一个问题的回复: 你可以使用特定width代替TextView代替wrap_content(如果你想将它限制为x尺寸,那么高度也是如此):

<TextView
    android:id="@+id/listaNumeriTextView"
    android:layout_width="140dp"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:background="#CCCCCC"
    android:gravity="center"/>

2)对第二个问题的回应: 您可以使用android:layout_weight指定两个TextViews都应占用屏幕尺寸的一半,如下所示:

<LinearLayout bla bla 
   bla bla bla 
   android:orientation="horizontal"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
   <TextView
        android:id="@+id/txtView1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="#CCCCCC"
        android:text="TextView 1"/>
   <TextView
        android:id="@+id/txtView2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="#CCCCCC"
        android:gravity="center"
        android:text="TextView 1"/>
</LinearLayout> 

答案 1 :(得分:0)

试试此代码

LayoutParams params = aboutmetxt.getLayoutParams();
                params.width = 100;
                aboutmetxt.setLayoutParams(params);

我用它来设置高度

答案 2 :(得分:0)

<TextView
    android:id="@+id/listaNumeriTextView"
    android:layout_width="XXX"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:background="#CCCCCC"
    android:gravity="center"/>

XXX指定要保留的宽度。这将是不变的。 例如:100dp