Android:在自定义ListView中对齐3个TextView

时间:2016-04-29 11:37:54

标签: android xml listview

我的自定义ListView中有3个texviews。每行中的每个TextView都有不同的长度(在屏幕上,最大长度为1 - 3,另外两个 - 14)。

如何将它们排成一行?

screen

我的布局:

string url = "https://maps.googleapis.com/maps/api/geocode/xml?address=" + area + "," + City + "&Key=ABZIXXXXXXXXXXXXXXXXXXXXXXXXXXX"

5 个答案:

答案 0 :(得分:4)

详细了解layout weight

您可以使用以下示例代码:

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

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="3"/>

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>

</LinearLayout>

答案 1 :(得分:0)

请看这个.......

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

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginRight="15dp"
    android:layout_marginLeft="15dp"
    android:orientation="horizontal">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="left"
        android:gravity="center"
        android:layout_weight="2"
        android:id="@+id/leftTv" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="center"
        android:gravity="center"
        android:layout_weight="2"
        android:id="@+id/centerTv" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="right"
        android:gravity="center"
        android:layout_weight="2"
        android:id="@+id/rightTv" />
 </LinearLayout>

</RelativeLayout>

答案 2 :(得分:0)

使用LinearLayout而不是RelativeLayout。

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="New Text"
        android:layout_weight="1"
        android:id="@+id/number_calls_tv"
        android:singleLine="true"
        android:maxLines="1" />

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="New Text"
        android:id="@+id/time_calls_tv"
        android:singleLine="true"
        android:layout_weight="1"
        android:maxLines="1"
        android:layout_marginLeft="42dp"
        android:layout_marginStart="42dp"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/number_calls_tv"
        android:layout_toEndOf="@+id/number_calls_tv" />

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="New Text"
        android:layout_weight="1"
        android:id="@+id/break_calls_tv"
        android:singleLine="true"
        android:maxLines="1"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/time_calls_tv"
        android:layout_toEndOf="@+id/time_calls_tv"
        android:layout_marginLeft="59dp"
        android:layout_marginStart="59dp" />

   </LinearLayout>

答案 3 :(得分:0)

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

<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="New Text"
    android:id="@+id/number_calls_tv"
    android:singleLine="true"
    android:maxLines="1" 
android:layout_weight="1"/>

<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="New Text"
    android:id="@+id/time_calls_tv"
    android:singleLine="true"
    android:maxLines="1" 
android:layout_weight="1"  />

<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="New Text"
    android:id="@+id/break_calls_tv"
    android:singleLine="true"
    android:maxLines="1"   
android:layout_weight="1"/>

你可以玩权重来获得所需的确切尺寸

答案 4 :(得分:0)

您也可以在不使用线性布局的情况下尝试此操作

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="10dp">

    <TextView
        android:id="@+id/number_calls_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:maxLines="1"
        android:singleLine="true"
        android:text="New Text" />

    <TextView
        android:id="@+id/time_calls_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_toRightOf="@id/number_calls_tv"
        android:maxLines="1"
        android:singleLine="true"
        android:text="New Text" />

    <TextView
        android:id="@+id/break_calls_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:maxLines="1"
        android:singleLine="true"
        android:text="New Text" />
</RelativeLayout>