Android线性布局图像在同一水平线上查看和编辑文本

时间:2017-10-01 09:06:53

标签: android android-layout

我正在尝试将ImageViewEditText放在同一行。

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

    <ImageView
        android:id="@+id/image_flag"
        android:layout_width="25dp"
        android:layout_height="30dp"
        android:layout_gravity="bottom"
        android:layout_weight="1"
        android:adjustViewBounds="true"
        android:scaleType="fitXY"
        android:src="@mipmap/ic_launcher" />
    <!--  Phone number Label -->
    <android.support.design.widget.TextInputLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_weight="8"
        android:drawablePadding="5dp"
        android:gravity="center_vertical">

        <EditText
            android:id="@+id/signin_phone"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Phone Number"
            android:inputType="phone" />
    </android.support.design.widget.TextInputLayout>

</LinearLayout>

这是它的样子。

enter image description here

如何在同一中心线上制作电话号码视图和图像?感谢。

3 个答案:

答案 0 :(得分:2)

android:gravity="center_vertical"添加到LinearLayout

答案 1 :(得分:0)

您可以在drawableLeft中使用EditText属性,而不是像这样使用其他ImageView

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <!--  Phone number Label -->
    <android.support.design.widget.TextInputLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_weight="8"
        android:drawablePadding="5dp"
        android:gravity="center_vertical">

        <EditText
            android:id="@+id/signin_phone"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:drawableLeft="@mipmap/ic_launcher"
            android:hint="Phone Number"
            android:inputType="phone" />
    </android.support.design.widget.TextInputLayout>

</LinearLayout>

或者您可以考虑使用RelativeLayout然后将重力layout_centerVertical设置为true,如下所示..

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

    <ImageView
        android:id="@+id/image_flag"
        android:layout_width="25dp"
        android:layout_height="30dp"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:layout_gravity="bottom"
        android:adjustViewBounds="true"
        android:src="@mipmap/ic_launcher" />
    <!--  Phone number Label -->
    <android.support.design.widget.TextInputLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/image_flag">

        <EditText
            android:id="@+id/signin_phone"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Phone Number"
            android:inputType="phone" />
    </android.support.design.widget.TextInputLayout>

</RelativeLayout>

答案 2 :(得分:0)

如果您不需要'LinearLayout',您可以使用'RelativeLayout'作为容器轻松完成此操作,然后在各个视图中使用android:layout_alignBaseline="@+id/title"