简体   繁体   English

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

[英]How do I align values inside my listview list item?

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? 如何将“离开类型”和“可用叶子”对齐到列表的中心,并将它们的值对齐到相应标题的中心? Please help me. 请帮我。 This is the xml code I have made but it doesn't fullfill my purpose 这是我制作的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>

在此输入图像描述

Best option is to use 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>

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? 如何将“离开类型”和“可用叶子”对齐到列表的中心,并将它们的值对齐到相应标题的中心?

Set gravity attribute for both LinearLayout's to center : LinearLayout's gravity属性设置为居中:

android:gravity="center"

replace your code with 用。替换你的代码

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

You can use android:weight and android:gravity="center" for getting the required layout 您可以使用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>

I got the listview item like 我得到了listview项目

在此输入图像描述

since you have use layout_gravity = "left" and layout_gravity = "right" So you just have to divide them from center. 因为你使用layout_gravity = "left"layout_gravity = "right"所以你只需要将它们从中心分开。 I suggest you should use android:weight 我建议你应该使用android:weight

Just add it to your layout tags. 只需将其添加到布局标签即可。

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

Since I am setting android:weight = "1" for both textviews inside LinearLayout it will divide the available horizontal width into half for each, and android:layout_gravity = "center" will set them to center. 由于我为LinearLayout中的两个android:layout_gravity = "center"设置了android:weight = "1" ,它将每个可用的水平宽度分成两半,而android:layout_gravity = "center"将它们设置为居中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM