如何使用RelativeLayout父级将小部件与其他小部件对齐

时间:2019-05-13 12:17:34

标签: android-relativelayout

我想使linearlayout与imageview水平对齐,并且我的布局中有RelativeLayout父级。我必须使用相对布局对齐我的布局。我现在不想使用约束布局。我关注的是相对布局有多灵活,以便可以从中获得好处。 当我使用 android:layout_toEndOf =“ @ + id / product_img” 应该对齐时,rignt现在我的product_img的边距为20 dp,但是当我将线性布局设置为 android:layout_toEndOf = “ @ + id / product_img” 它只将其设置在最后一面,但是我仍然需要为此新布局设置20dp的上边距。为什么我又和agian将利润率设置在每种布局的顶部?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/_10sdp"
android:background="@drawable/round_corner_white_alrt_box"
android:orientation="vertical">

<ImageView
    android:id="@+id/product_img"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_marginTop="@dimen/_20sdp"
    android:src="@mipmap/ic_launcher"
     />

<ImageView

    android:id="@+id/cross_btn"
    android:layout_width="@dimen/_16sdp"
    android:layout_height="@dimen/_16sdp"
    android:layout_alignParentEnd="true"
    android:src="@drawable/ic_x"
    />

<LinearLayout
    android:id="@+id/product_detail_layout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="@dimen/_5sdp"
    android:layout_toEndOf="@+id/product_img"
    android:orientation="vertical"
>
    <TextView
        android:id="@+id/price_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/product_img"
        android:fontFamily="@font/montserrat_regular"
        android:text="@string/how_many"
        android:textColor="@color/green"
        android:textSize="@dimen/_11sdp" />

    <TextView
        android:id="@+id/product_detail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/product_img"
        android:fontFamily="@font/montserrat_regular"
        android:text="@string/how_many"
        android:textColor="@color/black"
        android:textSize="@dimen/_11sdp" />

    <TextView
        android:id="@+id/product_quantity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/product_detail"
        android:layout_toRightOf="@+id/product_img"
        android:fontFamily="@font/montserrat_regular"
        android:text="@string/how_many"
        android:textColor="@color/colorGrey"
        android:textSize="@dimen/_11sdp" />
</LinearLayout>

Alignment issue respective to the imageview

2 个答案:

答案 0 :(得分:0)

只需在您的LinearLayout中添加以下代码即可。

android:layout_alignTop="@id/product_img"

答案 1 :(得分:0)

我对您的代码进行了一些更改,请用您的代码替换图片并检查。

我刚刚添加了

  

android:layout_centerVertical =“ true”

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/_10sdp"
android:background="@color/white"
android:orientation="vertical">

<ImageView
    android:id="@+id/product_img"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"  // magic is here
    android:layout_marginTop="@dimen/_20sdp"
    android:src="@mipmap/ic_launcher" />

<ImageView

    android:id="@+id/cross_btn"
    android:layout_width="@dimen/_16sdp"
    android:layout_height="@dimen/_16sdp"
    android:layout_alignParentEnd="true"
    android:src="@drawable/delete_category" />

<LinearLayout
    android:id="@+id/product_detail_layout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true" // magic is here
    android:layout_marginStart="@dimen/_5sdp"
    android:layout_toEndOf="@+id/product_img"
    android:orientation="vertical">

    <TextView
        android:id="@+id/price_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hom Many you got?"
        android:textColor="@android:color/holo_green_dark"
        android:textSize="@dimen/_11sdp" />

    <TextView
        android:id="@+id/product_detail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hom Many you got?"
        android:textColor="@color/black_overlay_50"
        android:textSize="@dimen/_11sdp" />

    <TextView
        android:id="@+id/product_quantity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hom Many you got?"
        android:textColor="@color/gray"
        android:textSize="@dimen/_11sdp" />
</LinearLayout>
</RelativeLayout>