Android / XML在EditTexts上方对齐imageViews

时间:2015-02-19 01:29:24

标签: xml android-layout

我只是想将一个imageView与edittext对齐。编辑文本对齐在活动的底部。我把两对放在A相对布局中,然后尝试将图像对齐到上面,但这不起作用。 http://i.imgur.com/PnLZSwK.png                     

  

      

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:orientation="horizontal"
    android:id="@+id/linearLayout">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight=".5">
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/imageView2"
            android:layout_above="@+id/edit1"
            android:layout_gravity="center"
            android:background="@drawable/arrow_down"/>

        <EditText
            android:layout_width="match_parent"
            android:layout_alignRight="@android:id/list"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/edit1"
            android:hint="Your name"
            />
    </RelativeLayout>


<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight=".5">
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView"
        android:layout_above="@+id/edit2"
        android:layout_centerHorizontal="true"
        android:background="@drawable/arrow_down"/>

<EditText
    android:layout_width="match_parent"
    android:layout_alignRight="@android:id/list"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:id="@+id/edit2"
    android:hint="Your number"
    android:inputType="number"
    />
</RelativeLayout>


</LinearLayout>




</RelativeLayout>

2 个答案:

答案 0 :(得分:1)

您的问题的解决方案是 FrameLayout 。在代码中 RelativeLayout 使用 FrameLayout 。首先将 ImageView 放在 FrameLayout 中,然后将EditText放在那里。这将解决您的问题。如果我能帮助你,请告诉我。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:orientation="horizontal"
    android:weightSum="1"
    android:id="@+id/linearLayout">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight=".5">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/imageView2"
            android:background="@drawable/arrow_down"/>

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/edit1"
            android:hint="Your name"
            />
    </FrameLayout>


<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight=".5">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView"
        android:background="@drawable/arrow_down"/>

<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/edit2"
    android:hint="Your number"
    android:inputType="number"
    />
</FrameLayout>

答案 1 :(得分:1)

如果要将箭头指向EditText,则以下布局可能会解决您的问题。为了展示你的想法,我刚刚用一些硬编码值创建了一个粗略的布局。但在开发项目时,您应遵循Google提供的标准指南。

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

      <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:orientation="horizontal"
        android:weightSum="1">

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="8dp"
            android:layout_weight="0.5">

            <ImageView
                android:id="@+id/imageView1"
                android:src="@drawable/ic_down"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:layout_centerHorizontal="true"/>

            <EditText
                android:id="@+id/name"
                android:layout_marginLeft="8dp"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/imageView1"
                android:layout_centerHorizontal="true"
                android:hint="Your Name"/>

        </RelativeLayout>

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="8dp"
            android:layout_weight="0.5">

            <ImageView
                android:id="@+id/imageView2"
                android:src="@drawable/ic_down"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:layout_centerHorizontal="true"/>

            <EditText
                android:id="@+id/number"
                android:layout_marginLeft="8dp"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/imageView2"
                android:layout_centerHorizontal="true"
                android:hint="Your Number"/>

        </RelativeLayout>

    </LinearLayout>

  </RelativeLayout>

I have given the screenshot below. Tell me whether you want this type of layout or not.