web-dev-qa-db-ja.com

クリック時にキーボードがオーバーラップするEditText

私のフラグメントでは、スクロールビュー内にeditTextがあり、それをクリックすると、次のように開くように設定します。

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

最初に開いたときから正常に機能しますが、キーボードを閉じてもう一度開くと、editTextと重なります。editTextを常にSOFT_INPUT_ADJUST_PANモードで開くように設定するにはどうすればよいですか?

xML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:custom="http://schemas.Android.com/apk/res-auto"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:background="@color/alabaster">

    <TextView
        Android:id="@+id/semconexao"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:text="Verifique sua conexão com a internet"
        Android:gravity="center"
        Android:layout_marginTop="10dp"
        Android:visibility="gone"/>


    <ScrollView
        Android:id="@+id/scroll"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent"
        Android:layout_above="@+id/footer">

        <LinearLayout
            Android:layout_width="fill_parent"
            Android:layout_height="fill_parent"
            Android:orientation="vertical">

            <RelativeLayout
                Android:layout_width="fill_parent"
                Android:layout_height="wrap_content"
                Android:visibility="visible">



                <com.Android.volley.toolbox.NetworkImageView
                    Android:id="@+id/imageInst"
                    Android:layout_width="match_parent"
                    Android:layout_height="200dp"
                    Android:scaleType="centerCrop"
                    Android:visibility="visible" />

                <com.retornar.utils.CircledNetworkImageView
                    Android:id="@+id/thumbnail"
                    Android:layout_width="@dimen/logo_maior"
                    Android:layout_height="@dimen/logo_maior"
                    Android:layout_marginLeft="20dp"
                    Android:layout_marginTop="100dp"
                    Android:adjustViewBounds="true"
                    Android:scaleType="centerCrop">

                </com.retornar.utils.CircledNetworkImageView>

                <ImageView
                    Android:id="@+id/more"
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:src="@drawable/ic_amp"
                    Android:visibility="gone"
                    Android:layout_alignParentBottom="true"
                    Android:layout_alignParentRight="true"
                    Android:layout_alignParentEnd="true" />

            </RelativeLayout>


            <TextView
                Android:id="@+id/retornarTitulo"
                Android:layout_width="fill_parent"
                Android:layout_height="wrap_content"
                Android:layout_below="@+id/imageInst"
                Android:layout_marginTop="20dp"
                Android:gravity="center"
                Android:padding="10dp"
                Android:text="@string/retornarTitulo"
                Android:textColor="@color/armadillo"
                Android:textSize="@dimen/text2" />


            <TextView
                Android:layout_width="fill_parent"
                Android:layout_height="wrap_content"
                Android:layout_below="@+id/retornarTitulo"
                Android:gravity="center"
                Android:padding="10dp"
                Android:text="@string/retornar"
                Android:textColor="@color/armadillo"
                Android:textSize="@dimen/text1" />

            <include layout="@layout/valores" />


            <EditText
                Android:id="@+id/campovalor"
                Android:layout_width="fill_parent"
                Android:layout_height="wrap_content"
                Android:layout_marginBottom="60dp"
                Android:layout_marginLeft="10dp"
                Android:layout_marginRight="10dp"
                Android:layout_marginTop="10dp"
                Android:background="@drawable/shadoweditext"
                Android:gravity="center"
                Android:hint="ou entre com um valor"
                Android:imeOptions="actionDone"
                Android:inputType="numberDecimal"
                Android:padding="10dp"
                Android:singleLine="true" />


            <View
                Android:layout_width="match_parent"
                Android:layout_height="1dp"
                Android:layout_marginLeft="10dp"
                Android:layout_marginRight="10dp"
                Android:layout_marginTop="20dp"
                Android:background="@color/gray" />

            <TextView
                Android:id="@+id/propText"
                Android:layout_width="match_parent"
                Android:layout_height="wrap_content"
                Android:layout_marginBottom="30dp"
                Android:layout_marginTop="20dp"
                Android:gravity="center"
                Android:padding="10dp"
                Android:text="Propósito em destaque"
                Android:textColor="@color/armadillo"
                Android:textSize="@dimen/text2"
                Android:visibility="gone" />

            <include layout="@layout/inst_prop" />

            <ImageView
                Android:id="@+id/maisprop"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:layout_gravity="center"
                Android:layout_marginTop="20dp"
                Android:src="@drawable/ic_proposito"
                Android:visibility="gone" />

            <TextView
                Android:id="@+id/maisproptext"
                Android:layout_width="match_parent"
                Android:layout_height="wrap_content"
                Android:layout_marginBottom="80dp"
                Android:layout_marginTop="10dp"
                Android:gravity="center"
                Android:text="Mais propósitos"
                Android:textColor="@color/armadillo"
                Android:visibility="gone" />

        </LinearLayout>
    </ScrollView>

    <TextView
        Android:id="@+id/ret"
        fontPath="fonts/Avenir-Bold.ttf"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:layout_alignParentBottom="true"
        Android:alpha="0.9"
        Android:background="@color/blumine"
        Android:gravity="center"
        Android:padding="15dp"
        Android:text="DOAR"
        Android:textColor="@color/white" />

</RelativeLayout>
15
AND4011002849

RESIZEの代わりにPANを設定するのはどうですか? EditTextSoftKeyboardより上に保つことができます。次のように試してください:

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

ただし、これを実行時に行う代わりに、manifestActivity(parent)として設定できます。属性。これはフラグメントでも処理されます(子)

<activity
    Android:name=".NameActivity"
    Android:label="@string/app_name"
    Android:windowSoftInputMode="stateAlwaysHidden|adjustResize">

次に、ご覧のとおり、EditTextはSoftKeyboardの上にありますが、レイアウトからは、TextViewAndroid:layout_alignParentBottom="true"属性はEditTextと重複します:

1_screenshot_overlap_resize

この動作を防ぐには、次のようにScrollViewを最後のTextViewの上に設定します。

<ScrollView
    Android:id="@+id/scroll"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:layout_above="@+id/ret"> <!-- instead of "footer" -->

そして、次の結果が得られます。

2_screenshot_no_overlap_resize

21
fllo

これを試して、このコードをAndroidManifest.xmlアクティビティに追加してください

Android:windowSoftInputMode="adjustPan" 
13
Latief Anwar