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

时间:2015-03-03 09:11:05

标签: android android-layout android-listview

如何将“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>

enter image description here

5 个答案:

答案 0 :(得分:3)

最佳选择是使用权重:

<?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>

答案 1 :(得分:2)

  

如何将“离开类型”和“可用叶子”对齐到中心   列表并将它们的值与各自的中心对齐   标题?

gravity的{​​{1}}属性设置为居中:

LinearLayout's

答案 2 :(得分:1)

替换你的代码

<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>

答案 3 :(得分:1)

您可以使用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>

我得到了像

这样的listview项目

enter image description here

答案 4 :(得分:0)

因为您使用了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"会将它们设置为中心。