如何修复LinearLayout中的宽度问题?

时间:2015-12-05 09:38:58

标签: android android-layout listview

我在android中有一个ListView,由LinearLayout通过适配器填充,如下所示:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="5dp" >

    <TextView
        android:id="@+id/listname"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.5"
        android:text="@+id/label"
        android:textSize="100px" >
    </TextView>
    <TextView
        android:id="@+id/listcurrent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.2"
        android:text="@+id/label"
        android:textSize="100px" >
    </TextView>
    <TextView
        android:id="@+id/listoffset"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.2"
        android:text="@+id/label"
        android:textSize="100px" >
    </TextView>
    <ImageView
        android:id="@+id/logo"
        android:layout_width="100px"
        android:layout_height="100px"
        android:layout_marginLeft="5px"
        android:layout_marginRight="20px"
        android:layout_marginTop="5px"
        android:layout_weight="0.1"
        android:src="@drawable/icon4" >
    </ImageView>


</LinearLayout>

我尝试过将不同元素的宽度设置为建议here的百分比。但它不起作用!

ListView看起来像这样:

Android1234.4500.00
iOS123.4500.00

即。不同的元素彼此相邻放置。我期待这样的事情:

Android         123.45   00.00
iOS             123.45   0.000

那么如何修复xml布局?

3 个答案:

答案 0 :(得分:3)

您必须width 0dpandroid:layout_width="match_parent"

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
orientation="horizontal"
android:padding="5dp" >

<TextView
    android:id="@+id/listname"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="0.5"
    android:text="@+id/label"
    android:textSize="100px" >
</TextView>
<TextView
    android:id="@+id/listcurrent"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="0.2"
    android:text="@+id/label"
    android:textSize="100px" >
</TextView>
<TextView
    android:id="@+id/listoffset"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="0.2"
    android:text="@+id/label"
    android:textSize="100px" >
</TextView>
<ImageView
    android:id="@+id/logo"
    android:layout_width="100px"
    android:layout_height="100px"
    android:layout_marginLeft="5px"
    android:layout_marginRight="20px"
    android:layout_marginTop="5px"
    android:layout_weight="0.1"
    android:src="@drawable/icon4" >
</ImageView>


</LinearLayout>

答案 1 :(得分:3)

<?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:layout_margin="5dp"
        android:orientation="vertical"
        android:padding="5dp">

    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:weightSum="2"
            >

        <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Name"
                android:paddingLeft="5dp"
                android:textColor="#000000"
                android:textSize="18dp">
        </TextView>

        <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Keshav"
                android:paddingLeft="5dp"
                android:textColor="#000000"
                android:textSize="18dp">
        </TextView>
    </LinearLayout>
    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:weightSum="2"
            >

        <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Emp Id"
                android:paddingLeft="5dp"
                android:textColor="#000000"
                android:textSize="18dp">
        </TextView>

        <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="1724"
                android:paddingLeft="5dp"
                android:textColor="#000000"
                android:textSize="18dp">
        </TextView>
    </LinearLayout>
    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:weightSum="2"
            >

        <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Designation"
                android:paddingLeft="5dp"
                android:textColor="#000000"
                android:textSize="18dp">
        </TextView>

        <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Sr Android Developer"
                android:paddingLeft="5dp"
                android:textColor="#000000"
                android:textSize="18dp">
        </TextView>
    </LinearLayout>
    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:weightSum="2"
            >

        <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Blood Group"
                android:paddingLeft="5dp"
                android:textColor="#000000"
                android:textSize="18dp">
        </TextView>

        <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="B Positive"
                android:paddingLeft="5dp"
                android:textColor="#000000"
                android:textSize="18dp">
        </TextView>
    </LinearLayout>
    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:weightSum="2"
            >

        <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Qualification"
                android:paddingLeft="5dp"
                android:textColor="#000000"
                android:textSize="18dp">
        </TextView>

        <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="MCA"
                android:paddingLeft="5dp"
                android:textColor="#000000"
                android:textSize="18dp">
        </TextView>
    </LinearLayout>

</LinearLayout>

enter image description here

答案 2 :(得分:1)

基本上:

  • 子元素的宽度(android:layout_width =&#34; 0dp&#34;)必须为0dp

  • android:layout_weight="5"是宽度的50%

你可以尝试这个例子:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="#1e90ff" 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="5dp" >

    <TextView
        android:id="@+id/listname"
        android:background="#1effff" 
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight="5"
        android:text="Android"
        android:textSize="100px" >
    </TextView>
    <TextView
        android:id="@+id/listcurrent"
        android:background="#1e0caa" 
        android:layout_width="0dp"
        android:layout_height="fill_parent" 
        android:layout_weight="2"
        android:text="123.45"
        android:textSize="100px" >
    </TextView>
    <TextView
        android:id="@+id/listoffset"
        android:background="#1e0cfd" 
        android:layout_width="0dp"
        android:layout_height="fill_parent" 
        android:layout_weight="2"
        android:text="00.00"
        android:textSize="100px" >
    </TextView>
    <ImageView
        android:id="@+id/logo"
        android:layout_width="0dp"
        android:layout_height="100px"
        android:layout_marginLeft="5px"
        android:layout_marginRight="20px"
        android:layout_marginTop="5px"
        **android:layout_weight="1"
        android:src="@drawable/ic_launcher" >
    </ImageView>


</LinearLayout>

参考文档:Linear Layout Weight

截图

enter image description here