Android EditText推送视图

时间:2017-04-27 16:20:20

标签: android android-layout

我有以下观点:

enter image description here

每次我编辑搜索EditText时(即使没有文本更改,只是聚焦),我的视图会这样做:

enter image description here

我的XML代码是:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:windowSoftInputMode="adjustNothing"
tools:context="garbi.mx.garbi.Home">

<!-- The main content view -->
<RelativeLayout
    android:id="@+id/mainContent"
    android:layout_width="match_parent"
    android:background="#ffffff"
    android:layout_height="match_parent" >


    <FrameLayout
            android:layout_marginTop="80dp"
            android:layout_marginBottom="140dp"
            android:id="@+id/mapFrame"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <fragment
                android:id="@+id/map"
                android:layout_marginTop="10dp"
                android:layout_margin="10dp"
                android:name="com.google.android.gms.maps.MapFragment"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />

            <ImageButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/geolocation"
                android:layout_marginRight="20dp"
                android:onClick="centerMap"
                android:layout_marginBottom="30dp"
                android:background="#00ffffff"
                android:layout_gravity="bottom|right"
                />

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/marker"
                android:layout_gravity="center" />


        </FrameLayout>


    <TextView
        android:layout_marginTop="15dp"
        android:layout_width="match_parent"
        android:text="¿Dónde se encuentra tu coche?"
        android:textColor="#43B9BD"
        android:textStyle="bold"
        android:gravity="center"
        android:layout_height="25dp"
        android:id="@+id/textView" />


    <!--<EditText
        android:id="@+id/places_autocomplete"
        android:layout_width="match_parent"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="30dp"
        android:textSize="14dp"
        android:layout_height="55dp"
        android:layout_alignParentTop="true"
        android:layout_toEndOf="@+id/imageView" />-->

    <com.seatgeek.placesautocomplete.PlacesAutocompleteTextView
        android:id="@+id/places_autocomplete"
        android:layout_width="match_parent"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="30dp"
        android:textSize="14dp"
        android:layout_height="55dp"
        app:pacv_googleMapsApiKey="AIzaSyBjn1_8gclbpsRvfO6ndKQKEuCLUaARw5s"
        android:layout_alignParentTop="true"
        android:layout_toEndOf="@+id/imageView" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:srcCompat="@drawable/search"
        android:layout_below="@+id/textView"
        android:layout_alignParentStart="true"
        android:layout_marginStart="16dp"
        android:id="@+id/imageView"
        android:layout_alignBottom="@+id/places_autocomplete" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:orientation="horizontal"
        android:weightSum="2"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="10dp"
        android:layout_above="@+id/imageButton">

        <Button
            android:layout_margin="5dp"
            android:layout_width="0dp"
            android:padding="5dp"
            android:layout_height="50dp"
            android:background="@drawable/field_small"
            android:textAllCaps="false"
            android:textColor="@color/textColor"
            android:onClick="setCar"
            android:id="@+id/carButton"
            android:text="Agregar \nVehículo"
            android:layout_weight="1"/>

        <Button
            android:layout_margin="5dp"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:background="@drawable/field_small"
            android:textAllCaps="false"
            android:onClick="setPayment"
            android:id="@+id/paymentButton"
            android:textColor="@color/textColor"
            android:text="Agregar \nMétodo de pago"
            android:layout_weight="1"/>


    </LinearLayout>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Solicitar Garbi"
        android:textSize="16dp"
        android:textAllCaps="false"
        android:textStyle="bold"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:textColor="#ffffff"
        android:background="@drawable/large_button"
        android:id="@+id/imageButton"
        android:onClick="request"
        android:layout_marginBottom="15dp"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true" />


</RelativeLayout>

<!-- The navigation drawer -->
<RelativeLayout
    android:layout_width="280dp"
    android:layout_height="match_parent"
    android:id="@+id/drawerPane"
    android:layout_gravity="start">

    <!-- Profile Box -->

    <RelativeLayout
        android:id="@+id/profileBox"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:background="@color/colorAccent"
        android:onClick="editProfile"
        android:padding="8dp" >

        <ImageView
            android:id="@+id/avatar"
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:src="@drawable/rain"
            android:layout_marginTop="15dp" />

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="15dp"
            android:layout_toRightOf="@+id/avatar"
            android:orientation="vertical" >

            <ImageView
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_marginTop="15dp" />

            <TextView
                android:layout_marginTop="-10dp"
                android:id="@+id/userName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Isabel Tapia Reyes"
                android:textColor="#fff"
                android:textSize="16sp"
                android:textStyle="bold" />


        </LinearLayout>

    </RelativeLayout>

    <!-- List of Actions (pages) -->
    <ListView
        android:layout_marginTop="100dp"
        android:id="@+id/navList"
        android:layout_width="280dp"
        android:layout_height="match_parent"
        android:choiceMode="singleChoice"
        android:divider="@null"
        android:dividerHeight="0dp"
        android:background="#ffffffff"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true" />

</RelativeLayout>

尝试它让我觉得这与按钮内的文本长度有关(它们是动态的)。如果按钮有多行,它将被推下。一行没问题。

1 个答案:

答案 0 :(得分:1)

您可以按照以下两个选项之一进行操作:

1. 添加 android:baselineAligned="false"到包含按钮的LinearLayout

 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_above="@+id/imageButton"
        android:layout_marginBottom="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:baselineAligned="false"
        android:orientation="horizontal"
        android:weightSum="2">

2. 使用 android:layout_height="match_parent"让子元素在文本更改时平均增长

 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/imageButton"
        android:layout_marginBottom="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:orientation="horizontal"
        android:weightSum="2">

        <Button
            android:id="@+id/carButton"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:onClick="setCar"
            android:padding="5dp"
            android:text="Agregar \nVehículTestTestTestTestTest"
            android:textAllCaps="false"
            android:textColor="@color/color_black" />

        <Button
            android:id="@+id/paymentButton"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:onClick="setPayment"
            android:text="Agregar \nMétodo de pago"
            android:textAllCaps="false"
            android:textColor="@color/color_black" />


    </LinearLayout>