我正在布置要在ListView中使用的行,我需要一些帮助。该行将如下所示:



以下是我到目前为止的内容,突出显示的bg没有显示,并且文本不会居中对齐(粘在顶部)。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/rl0"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:padding="0dp"
  android:layout_margin="0dp"
  android:background="@color/grey">
  <!-- shine -->
  <LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <ImageView
      android:id="@+id/imgShine"
      android:background="@color/shine"
      android:layout_height="0dp"
      android:layout_width="fill_parent"
      android:layout_weight="1" />
    <View
      android:layout_height="0dp"
      android:layout_width="fill_parent"
      android:layout_weight="1" />
  </LinearLayout>
  <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:id="@+id/ll"
    android:layout_gravity="center_vertical">
    <!-- cal graphic -->
    <RelativeLayout
      android:id="@+id/rl1"
      android:layout_width="wrap_content"
      android:layout_height="match_parent"
      android:padding="10dp">
      <!-- cal bg -->
      <ImageView
        android:id="@+id/imageView1"
        android:src="@drawable/cal"
        android:layout_width="60dp"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:scaleType="fitCenter"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true" />
      <!-- month -->
      <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tvMonth"
        android:textSize="11sp"
        android:layout_marginLeft="11dp"
        android:layout_marginTop="10dp"
        android:textColor="@drawable/list_cal_selector" />
      <!-- day -->
      <TextView
        android:id="@+id/tvDay"
        android:textSize="23sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tvMonth"
        android:layout_marginTop="2dp"
        android:layout_centerHorizontal="true"
        android:textColor="@drawable/list_cal_selector" />
    </RelativeLayout>
    <!-- text and button graphic -->
    <RelativeLayout
      android:id="@+id/rl2"
      android:layout_width="wrap_content"
      android:layout_height="fill_parent"
      android:gravity="center_vertical"
      android:layout_gravity="center_vertical">
      <!-- team name -->
      <TextView
        android:id="@+id/tvTeam"
        android:textSize="23dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingBottom="0dp"
        android:textColor="@drawable/list_text_selector" />
      <TextView
        android:id="@+id/tvTime"
        android:textSize="12sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tvTeam"
        android:textColor="@drawable/list_text_selector" />
      <TextView
        android:id="@+id/tvStation"
        android:textSize="12sp"
        android:paddingLeft="12dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tvTeam"
        android:layout_toRightOf="@+id/tvTime"
        android:textColor="@drawable/list_text_selector" />
      <!-- add button -->
      <ImageView
        android:id="@+id/imgAddBtn"
        android:src="@drawable/btn"
        android:layout_height="wrap_content"
        android:layout_width="60dp"
        android:scaleType="fitCenter"
        android:layout_centerVertical="true"
        android:adjustViewBounds="true"
        android:layout_alignParentRight="true"
        android:padding="10dp" />
      <!-- divider -->
      <ImageView
        android:id="@+id/imgDivider"
        android:src="@drawable/divider"
        android:layout_height="fill_parent"
        android:layout_width="2dp"
        android:layout_toLeftOf="@id/imgAddBtn"
        android:cropToPadding="false" />
    </RelativeLayout>
  </LinearLayout>
</FrameLayout>

最佳答案

我只会使用一个RelativeLayout。它将避免使用各种布局和
它更容易在屏幕上放置组件。

编辑:此解决方案有效,但我不知道它是否是最好的:

<?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="wrap_content"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentBottom="true"
        android:orientation="vertical"  >

        <View
            android:layout_width="1dp"
            android:layout_height="0dp"
            android:layout_weight="0.25"/>

        <ImageView
            android:layout_weight="0.5"
            android:layout_height="0dp"
            android:layout_width="50dp"
            android:background="#dedede"/>

        <View
            android:layout_width="1dp"
            android:layout_height="0dp"
            android:layout_weight="0.25"/>
    </LinearLayout>

    <!--
    ...
     -->
</RelativeLayout>

08-06 09:27