web-dev-qa-db-ja.com

AndroidキーボードはEditTextを非表示にします

画面の下部にあるEditTextに何かを書き込もうとすると、ソフトキーボードがEditTextを非表示にします。この問題を解決するにはどうすればよいですか?以下は私のxmlコードです。私はこれをフラグメントで使用しています。

<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:orientation="vertical" >

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


        <LinearLayout
            Android:id="@+id/linearLayoutTopDetails"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:layout_below="@+id/linearLayoutTop"
            Android:layout_marginLeft="6dp"
            Android:layout_marginRight="6dp"
            Android:layout_marginTop="6dp"
            Android:orientation="vertical" >

            <LinearLayout
                Android:layout_width="fill_parent"
                Android:layout_height="wrap_content"
                Android:background="@drawable/list_design1"
                Android:orientation="vertical" >

                <LinearLayout
                    Android:layout_width="fill_parent"
                    Android:layout_height="80dp"
                    Android:layout_weight="100"
                    Android:orientation="horizontal" >

                    <ImageView
                        Android:id="@+id/ImageViewProfImagePostDetail"
                        Android:layout_width="0dp"
                        Android:layout_height="fill_parent"
                        Android:layout_marginTop="2dp"
                        Android:layout_weight="24.84"
                        Android:paddingLeft="5dp"
                        Android:paddingRight="5dp"
                        Android:paddingTop="5dp" />

                    <LinearLayout
                        Android:layout_width="0dp"
                        Android:layout_height="wrap_content"
                        Android:layout_weight="60"
                        Android:orientation="vertical" >

                        <TextView
                            Android:id="@+id/textViewNamePostDetail"
                            Android:layout_width="wrap_content"
                            Android:layout_height="wrap_content"
                            Android:text="Robin"
                            Android:textSize="17sp" />

                        <TextView
                            Android:id="@+id/textViewLocationPostDetail"
                            Android:layout_width="wrap_content"
                            Android:layout_height="wrap_content"
                            Android:layout_marginTop="1dp"
                            Android:drawableLeft="@drawable/location"
                            Android:text="beijing, China" />

                        <TextView
                            Android:id="@+id/textViewTimeAgoPostDetail"
                            Android:layout_width="wrap_content"
                            Android:layout_height="wrap_content"
                            Android:text=" 18min ago" />
                    </LinearLayout>

                    <LinearLayout
                        Android:layout_width="0dp"
                        Android:layout_height="fill_parent"
                        Android:layout_weight="15"
                        Android:orientation="horizontal" >

                        <TextView
                            Android:id="@+id/textViewReportAbusePostDetail"
                            Android:layout_width="wrap_content"
                            Android:layout_height="wrap_content"
                            Android:layout_gravity="center"
                            Android:background="@drawable/flag"
                            Android:paddingLeft="5dp" />

                        <TextView
                            Android:id="@+id/textViewDeletePostDetail"
                            Android:layout_width="wrap_content"
                            Android:layout_height="wrap_content"
                            Android:layout_gravity="center"
                            Android:layout_marginLeft="15dp"
                            Android:background="@drawable/delete"
                            Android:visibility="gone" />
                    </LinearLayout>
                </LinearLayout>

                <TextView
                    Android:id="@+id/textViewDescriptionPostDetail"
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:layout_marginLeft="20dp"
                    Android:layout_marginTop="2dp"
                    Android:singleLine="false"
                    Android:text="Description or caption of the post"
                    Android:textSize="17sp" />
            </LinearLayout>

            <ImageView
                Android:id="@+id/feedPostedImagePostDetail"
                Android:layout_width="fill_parent"
                Android:layout_height="200dp"
                Android:layout_marginTop="5dp"
                Android:scaleType="fitCenter"
                Android:visibility="gone" />

            <LinearLayout
                Android:id="@+id/linearLayoutOptions"
                Android:layout_width="fill_parent"
                Android:layout_height="33dp"
                Android:layout_marginTop="2dp"
                Android:layout_weight="100"
                Android:background="@drawable/bar"
                Android:orientation="horizontal" >

                <TextView
                    Android:id="@+id/textViewShakePostDetail"
                    Android:layout_width="0dp"
                    Android:layout_height="fill_parent"
                    Android:layout_marginLeft="15dp"
                    Android:layout_weight="25"
                    Android:drawableLeft="@drawable/like"
                    Android:gravity="center"
                    Android:singleLine="true"
                    Android:text="Shake"
                    Android:textSize="12sp" />

                <TextView
                    Android:id="@+id/textViewCommentPostDetail"
                    Android:layout_width="0dp"
                    Android:layout_height="fill_parent"
                    Android:layout_weight="41"
                    Android:drawableLeft="@drawable/comment"
                    Android:gravity="center"
                    Android:paddingLeft="20dp"
                    Android:text="Comment" />

                <TextView
                    Android:id="@+id/textViewSharePostDetail"
                    Android:layout_width="0dp"
                    Android:layout_height="fill_parent"
                    Android:layout_weight="33"
                    Android:drawableLeft="@drawable/share"
                    Android:gravity="center"
                    Android:paddingLeft="20dp"
                    Android:text="Spread" />
            </LinearLayout>
        </LinearLayout>

        <ListView
            Android:id="@+id/listViewFeedsDetail1"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:layout_below="@+id/linearLayoutTopDetails"
            Android:layout_marginBottom="4dp"
            Android:layout_marginLeft="6dp"
            Android:layout_marginRight="6dp"
            Android:layout_marginTop="6dp" >
        </ListView>

        <LinearLayout
            Android:id="@+id/linearLayoutPostcomment"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:layout_below="@+id/listViewFeedsDetail1"
            Android:background="#FFFFFF"
            Android:orientation="horizontal"
            Android:weightSum="100" >

            <EditText
                Android:id="@+id/editTextComment"
                Android:layout_width="0dp"
                Android:layout_height="wrap_content"
                Android:layout_weight="80" />

            <Button
                Android:id="@+id/buttonPostComment"
                Android:layout_width="0dp"
                Android:layout_height="wrap_content"
                Android:layout_weight="20"
                Android:background="#F0F8FF"
                Android:text="Post" >
            </Button>
        </LinearLayout>
    </RelativeLayout>
</ScrollView>

コードで変更を追加することでこの問題を解決しようとしましたが、成功しませんでした。

以下は、EditTextをクリックする前後の画像です。

screenshot without soft keyboard, EditText visible

screenshot with soft keyboard, EditText hidden

38
Robin Royal

マニフェストで、これを特定のアクティビティに追加します。

 Android:windowSoftInputMode="adjustPan" 
58
Kishan

そのためには、アクティビティマニフェストで宣言する必要があります

         <activity
            Android:name=".activityname"
            Android:label="@string/app_name"
            Android:windowSoftInputMode="adjustPan|adjustResize" >
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />

                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
15
user3734100

Manifest.xmlファイルでwindowSoftInputMode = "adjustResize"を宣言します

<activity
        Android:name=".example"
        Android:theme="@style/AppTheme.NoActionBar"
        Android:windowSoftInputMode="adjustResize" />

xMLレイアウトファイルにスクロールビューを提供する

<RelativeLayout
         xmlns:Android="http://schemas.Android.com/apk/res/Android"
         xmlns:app="http://schemas.Android.com/apk/res-auto"
         xmlns:tools="http://schemas.Android.com/tools"
         Android:layout_width="match_parent"
         Android:layout_height="match_parent"
         Android:paddingBottom="16dp"
         Android:paddingLeft="16dp"
         Android:paddingRight="16dp"
         Android:paddingTop="16dp"
         Android:fitsSystemWindows="true">

<ScrollView
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:fillViewport="true"
        Android:isScrollContainer="false">

   // add edittext here...

 </ScrollView>
 </RelativeLayout>
4
Kishor N R

simple solutionは、SoftKeypadの背後に隠れているAndroid EditTextの問題です。プロジェクトモジュールのAndroidManifest.xmlファイルのコードを使用します。

<activity
        Android:name="com.example.MainActivity"
        Android:label="@string/activity_main"
        Android:windowSoftInputMode="adjustResize|stateHidden" />

このコードは私のために働いた。
アクティビティタグのマニフェストファイル内に、次の属性を追加します。

Android:windowSoftInputMode="adjustResize|stateHidden"

この属性(Android:windowSoftInputMode)これは推奨リストとして提供されます。また、それらを確認することもできます。

4
Rahul Raina

以下のコードを使用してください:

InputMethodManager ipmm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                ipmm.hideSoftInputFromWindow(url.getWindowToken(), 0);

私のコードのURLは次のとおりです:

url = (EditText) findViewById(R.id.eT_webbrowser);

またはこれを試してください:

InputMethodManager ipmm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                    ipmm.hideSoftInputFromWindow(null, 0);

別のオプションとしてこれを試してください:これは常に、EditTextが見えるようにソフト入力モードを非表示にします

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
2

私にとっての解決策は、単純にこれを親レイアウトに追加することでした:Android:fitsSystemWindows = "true"

1
Hichem Laroussi

あなたのAndroidManifest.xmlアクティビティタグにadjustPaneを追加します

<activity Android:name=".LoginActivity"
          Android:windowSoftInputMode="adjustPan"/>
0
Nelson Guest

これはAndroid adjustPanモードが設定されている場合のバグのようです

このカスタムEditTextを試して、この問題を回避してください。

https://Gist.github.com/Arjun-sna/768de4ca141798c59a8166a2e5d4a74

0
arjun