使用layout_weight

时间:2016-01-03 07:53:27

标签: android-layout android-listview horizontalscrollview android-layout-weight

我正在使用自定义列表视图,它有6个字段,因此我使用水平滚动视图,每个字段中的权重为字段之间所需的间距。这里是Activity的代码

<HorizontalScrollView
    android:id="@+id/horizontalScrollView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:background="#898ea0"
            android:orientation="horizontal"
            android:weightSum="11" >

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginLeft="15dp"
                android:layout_weight="2"
                android:text="Name" />

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_weight="2"
                android:text="Site Name" />

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_weight="1.5"
                android:text="Plot No" />

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_weight="2.3"
                android:text="Booking Id" />

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_weight="1.6"
                android:text="Booking Date" />

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_weight="1.6"
                 android:layout_marginRight="8dp"
                android:text="Cancel Date" />
        </LinearLayout>


            <ListView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:id="@+id/cancel_booking_listView"
                android:background="#163330">

            </ListView>
    </LinearLayout>
</HorizontalScrollView>

`

在listview行项目中,我使用具有相同权重的所有字段,但也无法在字段之间获得相等的间距。这是我的自定义行列表代码`

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:background="#eee"
        android:orientation="horizontal"
        android:weightSum="11" >

        <TextView
            android:id="@+id/cb_custmrnameTv"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="8dp"
            android:layout_weight="2"
            android:text="Name" />

        <TextView
            android:id="@+id/cb_siteNameTv"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_weight="2"
            android:text="Site Name" />

        <TextView
            android:id="@+id/cb_plotNoTv"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_weight="1.5"
            android:text="Plot No" />

        <TextView
            android:id="@+id/cb_bookingIdTv"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_weight="2.3"
            android:text="Booking Id" />

        <TextView
            android:id="@+id/cb_bookingDateTv"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_weight="1.6"
            android:text="Booking Date" />

        <TextView
            android:id="@+id/cb_cancelDateTv"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_weight="1.6"
            android:layout_marginRight="5dp"
            android:text="Cancel Date" />
    </LinearLayout>
</HorizontalScrollView>

` 为了更好地理解这里是我得到的视图的屏幕截图。你可以在这里看到每一行都有自己的间距。enter image description here

我需要在所有字段之间实现相等的间距。 任何想法解决它?

2 个答案:

答案 0 :(得分:0)

尝试使用

android:layout_width="match_parent"
TextView字段中的

。 此外,您可能需要使用表格布局以获得适当的间距。

答案 1 :(得分:0)

我通过使用listview的自定义标题视图解决了这个问题,该视图具有与自定义行列表相同数量的字段和权重,并从主布局中删除了字段。 我的Cusotmer rowlist_header视图是:`

<HorizontalScrollView
    android:id="@+id/horizontalScrollView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:orientation="horizontal"
        android:weightSum="11" >

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="15dp"
            android:layout_weight="2"
            android:text="Name" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_weight="2"
            android:text="Site Name" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_weight="1.5"
            android:text="Plot No" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_weight="2.3"
            android:text="Booking Id" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_weight="1.6"
            android:text="Booking Date" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_weight="1.6"
            android:text="Cancel Date" />
    </LinearLayout>
</HorizontalScrollView>

`

并将此视图添加到我的listview标题中

listView = (ListView) findViewById(R.id.cancel_booking_listView);

     final View headerView = getLayoutInflater().inflate(R.layout.rowlist_header,
             listView , false);
     listView .addHeaderView(headerView);