如何让这两列在顶部齐平?

时间:2015-10-14 19:38:46

标签: android android-layout

此布局是背景图片,标题和2列。第一列是图像。第二列是名称和副标题。查看2列,左侧图像略高于文本列。将“layout_alignParentTop =”true“添加到LinearLayout文本列没有帮助。

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

<ImageView
        android:id="@+id/background"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/nature_backdrop"
        android:scaleType="centerCrop"/>

<LinearLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

    <TextView
        android:id="@+id/main_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="15dp"
        android:textColor="@color/steel_grey"
        android:textSize="20sp"
        android:text="@string/intro_title"/>

    <RelativeLayout
        android:id="@+id/first_row"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginBottom="10dp">

        <ImageView
            android:id="@+id/first_row_icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="6dp"
            android:src="@drawable/flight"/>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_toRightOf="@id/first_row_icon"
            android:layout_alignParentTop="true">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="14sp"
                android:textColor="@color/white"
                android:text="@string/flight_info"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@color/white"
                android:text="@string/flight_info_desc"/>

        </LinearLayout>
    </RelativeLayout>

1 个答案:

答案 0 :(得分:1)

尝试在线性布局上设置重力,并在必要时设置内容。如果你的目标是api level 17及以上,你可以设置textAlignment =“gravity”。

我还将你的bg图像混合到线性布局中。这可能适用于您,也可能不适合您,但认为它可能会为您节省一些代码。

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/content"
    android:background="@drawable/nature_backdrop"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

<TextView
    android:id="@+id/main_title"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="15dp"
    android:textColor="@color/steel_grey"
    android:textSize="20sp"
    android:text="@string/intro_title"/>

<RelativeLayout
    android:id="@+id/first_row"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginLeft="30dp"
    android:layout_marginRight="30dp"
    android:layout_marginBottom="10dp">

    <ImageView
        android:id="@+id/first_row_icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="6dp"
        android:src="@drawable/flight"/>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_toRightOf="@id/first_row_icon"
        android:gravity="top">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="14sp"
            android:textColor="@color/white"
            android:text="@string/flight_info"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@color/white"
            android:text="@string/flight_info_desc"/>

    </LinearLayout>
</RelativeLayout>
</LinearLayout>