如何修正LinearLayout项的位置?

时间:2018-01-20 10:38:41

标签: android android-layout android-linearlayout

我在

中创建了一个包含5个TextView的水平LinearLayout

我设置的每个TextView android:layout_weight="1"

LinearLayout为android:layout_width="match_parent"

当我运行应用程序时,它们会平均分配

如果我在运行时将一个较长的文本设置为其中一个TextView元素,则另一个textview将更改位置

我能解决所有职位吗?

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:text="20"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:text="20"/>

    <TextView
        android:id="@+id/change_value"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:onClick="changeValue"
        android:text="20" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:text="20"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:text="20"/>
</LinearLayout>



public void changeValue(View v){
    TextView tv=(TextView)v;
    tv.setText("zzzzzzzzzzzz");
}

2 个答案:

答案 0 :(得分:1)

试试吧,

 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <TextView
        android:text="first"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content" />
    <TextView
        android:text="first"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content" />
    <TextView
        android:text="first"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content" />
    <TextView
        android:text="first"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content" />
    <TextView
        android:text="first"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content" />
</LinearLayout>

在某些文字字段中添加更多文字

enter image description here

答案 1 :(得分:0)

设置下面的代码而不是layout_width:

android:layout_width="0dip"