Android +你会建议哪种布局?

时间:2011-09-27 16:01:33

标签: android android-layout

我正在列出一行用于ListView,我需要一些帮助。该行将如下所示:

enter image description here

以下是我到目前为止的情况,高亮显示的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>

3 个答案:

答案 0 :(得分:1)

我只使用一个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>

答案 1 :(得分:0)

查看本教程,您可以选择最佳布局。每个布局都有自己的优点和缺点。只有一个布局在Android中不是最好但在大多数情况下Relative layout易于使用,因为它已经移动到任何UI的位置。

就像你的匹配问题,教程

http://android-developers.blogspot.com/2009/02/android-layout-tricks-1.html

您可以在developer.android.con中看到更多布局。这需要学习更简单的方法。这里有一些Best links你可以看到各种布局。

http://developer.android.com/resources/tutorials/views/hello-relativelayout.html

http://developer.android.com/guide/topics/ui/layout-objects.html

http://mobile.tutsplus.com/tutorials/android/android-user-interface-design-relative-layouts/

http://www.learn-android.com/2010/01/05/android-layout-tutorial/

答案 2 :(得分:0)

enter image description here检查出来

![<?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="35dp"
    android:orientation="horizontal" >

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:scaleType="centerInside"
        android:src="@drawable/ic_launcher" />

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="40dp"
        android:layout_weight="4"
        android:orientation="vertical" >

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Row 1" />

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

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:text="Row 2" />

            <TextView
                android:layout_marginLeft="10dp"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text="Row 3" />
        </LinearLayout>
    </LinearLayout>

    <View android:layout_height="match_parent"
        android:layout_width="2dp"
        android:background="#fff"/>
    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:scaleType="centerInside"
        android:src="@drawable/ic_launcher" />

</LinearLayout>