代码之家  ›  专栏  ›  技术社区  ›  turtleboy

固定TextView的宽度

  •  8
  • turtleboy  · 技术社区  · 8 年前

    我有下面的LinearLayout。我将其用于ListView中的一行。

    我已经将Textview的权重设置为1,因此它们应该都具有相同的宽度。

    问题是,当一些文本视图中有更多字符时,文本视图的宽度会发生变化。这会对ListView的显示方式产生总体影响,因为在每一行中,数据排列不正确。(我在ListView上方有标题)。

    当一些文本视图中的文本较多时,文本两侧仍有空间,文本视图会变大,这是我不希望的,因为我已经将每个文本的权重设置为1。

    是否有一种方法可以固定每个文本视图的宽度,使其不会根据其中文本的长度而改变?

    提前谢谢

    马特

    <?xml version="1.0" encoding="UTF-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingBottom="5dp"
        android:paddingTop="5dp" >
    
        <TextView
            android:id="@+id/rowstarttimeweeksum"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="2" />
    
        <TextView
            android:id="@+id/rowplannedcallsweeksum"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="2"
            android:layout_weight="1" />
    
        <TextView
            android:id="@+id/rowncrsweeksum"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="2"
            android:layout_weight="1" />
    
        <TextView
            android:id="@+id/rowqasweeksum"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="2" 
            android:layout_weight="1"/>
    
        <TextView
            android:id="@+id/rowplannedhoursweeksum"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="2:33"
            android:layout_weight="1"
            android:gravity="right"/>
    
        <TextView
            android:id="@+id/rowactualcallsweeksum"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="2" 
            android:layout_weight="1"
            android:gravity="right"/>
    
        <TextView
            android:id="@+id/rowactualhourssweeksum"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="2:01" 
            android:layout_weight="1"
            android:gravity="right"/>
    
    
    </LinearLayout>
    
    1 回复  |  直到 8 年前
        1
  •  13
  •   Ravi    8 年前

    一个小小的改变,你的问题就解决了

    更改全部宽度 TextView 从…起 wrap_content 0dp

    android:layout_width="0dp"
    

    无论何时将高度/宽度设置为 0dp ,它将根据 android:layout_weight