Androidソフトキーボードが入力ボックスを覆う問題

2066 ワード

Androidのlayoutデザインで入力ボックスが多すぎると、ソフトキーボードを入力してポップアップすると、下の入力ボックスの一部がソフトウェアディスクに遮られ、フォーカス入力が得られません.
解決策:
方法1:あなたのactivityのoncreateのsetContentViewの前にこのコードgetWindow()を書きます.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
方法2:プロジェクトのAndroidManifestで.xmlファイルのインタフェースに対応するにandroid:windowSoftInputMode="stateVisible|adjustResize"を加えると、画面全体が上に移動します.加えたのは
Android:windowSoftInputMode=「adjustPan」でキーボードが画面を上書きします.
方法3:トップクラスのlayoutをScrollViewに置き換えるか、トップクラスのLayoutの上にScrollViewのパッケージを追加します.これにより、ソフトキーボードは入力ボックスとともにスクロールされ、ソフトキーボードは常に下部にあります.
注意:メソッド1と2は同じメソッドですが、1つはコードで実装され、1つはxmlファイルで実装されます.このメソッドは、1.5以降のバージョンでサポートされていない場合があります.しかし、方法3は間違いなく問題ありません.
本文は主にAndroidで入力方式キーボードとactivityページの遮蔽の問題をどのように解決するかを紹介する.
 
まとめ:
非表示設定activity属性android:windowSoftInputMode="adjustPan"
高さを動的に調整したいandroid:windowSoftInputMode="adjustResize"
 
質問:
私の元の問題は、テンセント微博のOAuthに対してwebViewを検証し、ソフトキーボードを弾いた後、入力ボックスを上に移動すると入力ボックスが見えなくなり、WebviewがScrollViewに置かれていることに気づき、ScrollViewをLinearLayoutに変更して問題が解決し、ソフトキーボードを弾いた後に大幅に転がることはありません.しかし、以下では、ソフトキーボードとactivityページの遮蔽について詳しく説明します.
 
詳細:
通常、入力ボックスに内容を入力すると、入力キーボードがポップアップされると、activityが自動的に高さを設定し、activityが上にスクロールして入力キーボードが追加された高さに相当します.ただし、現在の入力ボックスが水没する場合があります.入力キーボードがイジェクトされたときにactivityを自動的に上に押し出さないようにするには、activtyで属性android:windowSoftInputMode=「adjustPan」を設定します.
<activity android:name="testActivity"  
      android:windowSoftInputMode="adjustPan">

属性をandroid:windowSoftInputMode=「adjustResize」に設定すると、自動的に高さを調整できます.
プロパティstateVisibleはデフォルトの入力キーボードを表示します.その他のプロパティはandroid:windowSoftInputModeを参照してください.
 
adjustPanも同様に問題があります.つまり、ソフトキーボードを閉じて、遮られた入力ボックスを位置決めする必要があるかもしれません.私はadjustPanとadjustResizeの間にある解決策を望んでいます.つまり、ソフトキーボードはactivityに一定の押圧がありますが、焦点のある入力ボックスは常にスクリーンに表示されます.個人的には可能性のある解決策はnewのLinearLayoutで、その中の
protected void onSizeChanged(int w, int h, int oldw, int oldh)

方法は,hパラメータの動的変化を効果的にするが,時間がかかり,しばらく試みたくない.