如何对齐列表视图列表项中的值?

How do I align values inside my listview list item?

如何将 "Leave Type" 和 "Available Leaves" 对齐到列表的中心并将它们的值对齐到相应标题的中心?请帮我。这是我编写的 xml 代码,但它不能满足我的目的

<?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="match_parent"
    android:layout_gravity="center"
    android:background="@drawable/list_selector"
    android:orientation="vertical" >

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

        <TextView
            android:id="@+id/leave_type_header"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:layout_gravity="left"
            android:textColor="#000000" />

        <TextView
            android:id="@+id/available_leaves_header"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:layout_gravity="right"
            android:textColor="#000000" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" 
        android:gravity="left|right">

        <TextView
            android:id="@+id/leave_type"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:layout_gravity="left"
            android:textColor="#000000"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/available_leaves"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:layout_gravity="right"
            android:textColor="#000000"
            android:textStyle="bold" />
    </LinearLayout>

</LinearLayout>

因为您使用了 layout_gravity = "left"layout_gravity = "right" 所以你只需要将它们从中心分开。我建议你应该使用 android:weight

只需将其添加到您的布局标签即可。

<?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="match_parent"
    android:layout_gravity="center"
    android:background="@drawable/list_selector"
    android:orientation="vertical" >

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

        <TextView
            android:id="@+id/leave_type_header"
            android:layout_width="0dp"
            android:weight = "1"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:layout_gravity="center"
            android:textColor="#000000" />

        <TextView
            android:id="@+id/available_leaves_header"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:weight = "1"
            android:layout_margin="10dp"
            android:layout_gravity="center"
            android:textColor="#000000" />
    </LinearLayout>

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

        <TextView
            android:id="@+id/leave_type"
            android:layout_width="0dp"
            android:weight = "1"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:layout_gravity="center"
            android:textColor="#000000"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/available_leaves"
            android:layout_width="0dp"
            android:weight = "1"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:layout_gravity="center"
            android:textColor="#000000"
            android:textStyle="bold" />
    </LinearLayout>

</LinearLayout>

因为我在 LinearLayout 中为两个文本视图设置了 android:weight = "1",它会将每个可用的水平宽度分成两半,并且 android:layout_gravity = "center" 会将它们设置为居中。

How can I align "Leave Type" and "Available Leaves" to the center of the list and align their values to the center of the respective heading?

LinearLayout'sgravity 属性设置为中心 :

android:gravity="center"

将您的代码替换为

<LinearLayout
    android:layout_width="0dp"
    android:layout_weight="1"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:gravity="center_horizontal">

    <TextView
        android:id="@+id/leave_type_header"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:text="type"
        android:textColor="#000000" />

    <TextView
        android:id="@+id/leave_type"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:textColor="#000000"
        android:text="casual"
        android:textStyle="bold" />


</LinearLayout>

<LinearLayout
    android:layout_width="0dp"
    android:layout_weight="1"
    android:layout_height="wrap_content"
    android:orientation="vertical" 
    android:gravity="center_horizontal">

    <TextView
        android:id="@+id/available_leaves_header"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:text="available"
        android:textColor="#000000" />

    <TextView
        android:id="@+id/available_leaves"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:textColor="#000000"
        android:text="5.0"
        android:textStyle="bold" />
</LinearLayout>

最好的选择是使用weightsum:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:weightsum="2"
    android:orientation="horizontal" 
    android:gravity="left|center">

    <TextView
        android:id="@+id/leave_type_header"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:layout_gravity="left"
        android:textColor="#000000" />

    <TextView
        android:id="@+id/available_leaves_header"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:layout_gravity="right"
        android:textColor="#000000" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" 
     android:weightsum="2"
    android:gravity="left|center">

    <TextView
        android:id="@+id/leave_type"
       android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:layout_gravity="left"
        android:textColor="#000000"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/available_leaves"
       android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:layout_gravity="left"
        android:textColor="#000000"
        android:textStyle="bold" />
</LinearLayout>

您可以使用 android:weightandroid:gravity="center" 来获得所需的布局

<?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_gravity="center"
    android:background="@drawable/bg_grey"
    android:orientation="vertical" >

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

    <TextView
        android:id="@+id/leave_type_header"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_margin="10dp"
        android:layout_weight="1"
        android:gravity="center"
        android:text="Leave Type"
        android:textColor="#000000" />

    <TextView
        android:id="@+id/available_leaves_header"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_margin="10dp"
        android:layout_weight="1"
        android:gravity="center"
        android:text="Available Leaves"
        android:textColor="#000000" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="left|right"
    android:orientation="horizontal"
    android:weightSum="2" >

    <TextView
        android:id="@+id/leave_type"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="left"
        android:layout_margin="10dp"
        android:layout_weight="1"
        android:gravity="center"
        android:text="Privilege"
        android:textColor="#000000"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/available_leaves"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_margin="10dp"
        android:layout_weight="1"
        android:gravity="center"
        android:text="20.0"
        android:textColor="#000000"
        android:textStyle="bold" />
</LinearLayout>

</LinearLayout>

我得到了这样的列表视图项目