键入文本时是否隐藏EditText?

时间:2015-01-12 11:47:02

标签: android android-layout android-fragments android-edittext

我有一个带有EditText的片段。当我尝试输入文本时,EditText会隐藏,键盘会转到EditText的前面,我无法输入文本。我试过android:windowSoftInputMode="adjustPan|adjustResize",但我认为这不适用于碎片。

我该如何解决?

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

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="100dp"
        android:layout_marginBottom="50dp">
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/convite_batalha"
            android:layout_gravity="center" />
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/title_convite"
            android:layout_gravity="center"/>
    </LinearLayout>


    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center">

        <ImageView
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@drawable/icon_agenda"
            />
        <EditText
            android:layout_width="fill_parent"
            android:layout_height="40dp"
            android:id="@+id/etEmail"
            android:background="#FFFFFF"
            android:inputType="textEmailSubject"
            android:hint="Digite o email do convidado"
            />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="20dp"
        android:gravity="center"
        >

        <Button
            android:id="@+id/btConvidar"
            android:layout_margin="20dp"
            android:layout_width="wrap_content"
            android:layout_gravity="center_horizontal"
            android:background="@drawable/btn_convidar"
            android:layout_height="wrap_content" />

    </LinearLayout>

</LinearLayout>

使用AdView的DrawerLayout

    <android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/dl">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <FrameLayout
            android:id="@+id/fl"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            />


        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="50dp">
            <com.google.android.gms.ads.AdView
                    android:id="@+id/adView"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_alignParentBottom="true"
                    ads:adSize="BANNER"
                    ads:adUnitId="@string/banner_ad_unit_id"
                    android:background="#000"
                    >
            </com.google.android.gms.ads.AdView>
        </RelativeLayout>


    </LinearLayout>




   <ListView
       android:id="@+id/lv"
       android:layout_width="250dp"
       android:layout_height="match_parent"
       android:choiceMode="singleChoice"
        android:divider="#e9ba68"
        android:paddingLeft="5dp"
        android:paddingRight="5dp"
        android:dividerHeight="1dp"
        android:background="#ac453c"
        android:layout_gravity="start"
       >
   </ListView>

</android.support.v4.widget.DrawerLayout>

1 个答案:

答案 0 :(得分:0)

根据android-developers,如果您转到manifest.xml并将您的活动配置更改为:

<activity name="YourActivity"
    android:windowSoftInputMode="stateVisible|adjustResize">
    ...
</activity>

问题将得到解决。

根据{{​​3}}的

另一种解决方案是将容器布局更改为RelativeLayout并将EditText设置为alignParentBottom="true"


关于AdView问题,只需将LinearLayout中的所有内容打包并将其与AdView放在一个RelativeLayout中,然后将AdView设置为android:layout_alignParentBottom="true",将另一个{{1}设置为LinearLayout设置属性android:layout_above="@id/adView",有关插图代码,请查看this answer