如何将TextView居中对齐ListView中的另一个TextView

时间:2014-09-04 22:33:44

标签: android xml android-layout listview centering

目前我的XML如下所示: enter image description here

我想做的就是“白天”。 (以实际日期(例如03,24)替换)水平居中于月份以下(其中“月”和“39”也将替换为MMM格式的月份字符串),使得水平中心与水平中心匹配一个月旁边是一些其他TextView对象,例如事件名称和事件时间。

我将我的XML基于How to center align a textview below imageview as a title in a List view,但是日期稍微偏右,我不太确定如何解决问题,尽管摆弄了RelativeLayout文档中的属性。

http://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html

events_info.xml(ListView对象的布局):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/eventsRelLayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="6dip">


    <TextView
        android:id="@+id/month"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Month" />


    <TextView
        android:id="@+id/day"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/month"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:singleLine="true"
        android:text="Day" />


    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/month"
        android:paddingLeft="10dp"
        android:paddingRight="0dp"
        android:text="Name" />

    <TextView
        android:id="@+id/time"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/name"
        android:layout_toRightOf="@id/month"
        android:paddingLeft="10dp"
        android:paddingRight="0dp"
        android:text="Time" />

fragment_event_list.xml(ListView):

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="fish.glow.EventFragment">

    <ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</FrameLayout>

2 个答案:

答案 0 :(得分:3)

试试这个:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<RelativeLayout
    android:id="@+id/rl_left"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/month"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="month month" />

    <TextView
        android:id="@+id/day"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/month"
        android:layout_centerHorizontal="true"
        android:gravity="center"
        android:text="day" />

</RelativeLayout>


<TextView
    android:id="@+id/name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_toRightOf="@+id/rl_left"
    android:text="name" />


<TextView
    android:id="@+id/time"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/name"
    android:layout_marginLeft="10dp"
    android:layout_toRightOf="@+id/rl_left"
    android:text="time" />

</RelativeLayout>

答案 1 :(得分:1)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/eventsRelLayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="6dip">

<LinearLayout
    android:id="@+id/date"
    android:orienation="vertical"
    android:gravity="center"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/month"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Month" />


    <TextView
        android:id="@+id/day"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/month"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:singleLine="true"
        android:text="Day" />
</LinearLayout>


    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/date"
        android:paddingLeft="10dp"
        android:paddingRight="0dp"
        android:text="Name" />

    <TextView
        android:id="@+id/time"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/name"
        android:layout_toRightOf="@id/date"
        android:paddingLeft="10dp"
        android:paddingRight="0dp"
        android:text="Time" />