listview android

时间:2015-07-08 09:05:08

标签: android listview layout

我的ListView行中有3个TextView 我想平等地分配它们。我尝试过使用重力,但它没有用。
所提供的空间应在文本中平均分配,或者可以有所不同。

以下是代码:

list.xml

<ListView
    android:layout_width="wrap_content"
    android:layout_height="457dp"
    android:id="@+id/payment_plan_list_view"
    android:layout_gravity="left|center"
    android:divider="@android:color/transparent"
    android:dividerHeight="20dp"
    android:layout_marginTop="10dp"
    android:layout_weight="3"

    />

list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<TableLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TableRow>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="15dp"
            android:text="New Text"
            android:layout_gravity="left|center"
            android:id="@+id/sr_no"
            android:layout_weight="3"
            />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="15dp"
            android:text="New Text"
            android:layout_gravity="left|center"
            android:id="@+id/stage"
            android:layout_weight="3"

            />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="15dp"
            android:text="New Text"
            android:layout_gravity="left|center"
            android:id="@+id/percentage"
            android:layout_weight="3"

            />
    </TableRow>
    </TableLayout>

4 个答案:

答案 0 :(得分:1)

删除TableLayout,只需使用权重 加权维度必须 0dp 才能正常工作 另请注意,我的LinearLayout具有水平方向:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textSize="15dp"
        android:text="New Text"
        android:layout_gravity="left|center"
        android:id="@+id/sr_no"
    />
    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textSize="15dp"
        android:text="New Text"
        android:layout_gravity="left|center"
        android:id="@+id/stage"
    />  
    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textSize="15dp"
        android:text="New Text"
        android:layout_gravity="left|center"
        android:id="@+id/percentage"
    />
</LinearLayout>

答案 1 :(得分:1)

如果你将重力设置为左/中心,那么显然它们就像是。

1

2

3

如果您希望textview像1-2-3一样,请使用填充和重量并移除重力。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:paddingRight="5dp"
    android:paddingLeft="5dp"
    android:textSize="15dp"
    android:text="New Text"
    android:id="@+id/sr_no"
/>
<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:paddingRight="5dp"
    android:paddingLeft="5dp"
    android:layout_weight="1"
    android:textSize="15dp"
    android:text="New Text"
    android:id="@+id/stage"
/>  
<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:paddingRight="5dp"
    android:paddingLeft="5dp"
    android:textSize="15dp"
    android:text="New Text
    android:id="@+id/percentage"
/>

答案 2 :(得分:0)

android:layout_width="wrap_content"更改为android:layout_width="0dp"

然后将android:layout_weight="3"设置为android:layout_weight="1"

如上所述,请删除TableLayout - 不确定其用途。

答案 3 :(得分:0)

尝试使用这样的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="15dp"
            android:text="New Text"
            android:layout_gravity="left|center"
            android:id="@+id/sr_no"
            android:layout_weight="0.35"
            android:singleLine="true"
            android:padding="5dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="15dp"
            android:text="New Text"
            android:layout_gravity="left|center"
            android:id="@+id/stage"
            android:layout_weight="0.35"

            android:singleLine="true"
            android:padding="5dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="15dp"
            android:text="New Text"
            android:layout_gravity="left|center"
            android:id="@+id/percentage"
            android:layout_weight="0.30"

            android:singleLine="true"
            android:padding="5dp" />

</LinearLayout>

希望有所帮助......