Android自動イジェクトソフトウェアディスクとイジェクトしない設定

2846 ワード

1.ソフトウェアディスクの設定はポップアップされません.
新しいActivityインタフェースに入り、Android Manifestでソフトキーボードの自動イジェクトを阻止したい.xmlで対応するActivityで設定
android:windowSoftInputMode="adjustUnspecified|stateHidden"

Androidの携帯電話は自動的にソフトキーボードを弾き出すことができませんAnroidを開発する時、あなたが1つのインタフェースを開く時、スクリーンの焦点は自動的に第1のEditTextの中で留まって、Androidのソフトキーボードはデフォルトで自動的に弾き出すことができて、ユーザーの第1の目はインタフェースさえはっきり見えないで、ソフトキーボードは弾き出して、これはユーザーの体験に影響して、私達はインタフェースを開く時を設定する必要がありますEditTextがフォーカスを取得する時、ソフトキーボードを弾き出さないで、実はとても簡単で、コードは以下の通りです//デフォルトのソフトキーボードは弾き出さない
getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

OnCreate()関数で、EditViewを含むView Groupに追加します.
android:focusableInTouchMode="false"

2.ソフトウェアディスクをイジェクトする
//inputManager
private InputMethodManager inputManager = null;
inputManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
@Override
public void hideSoftKeyBoard() {
    InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
    if (imm.isActive() && getActivity().getCurrentFocus() != null) {
        if (getActivity().getCurrentFocus().getWindowToken() != null) {
       imm.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
    }
  }
}

@Override
public void showSoftKeyBoard(final EditText editText) {
    postDelayed(new Runnable() {
        @Override
        public void run() {
            inputManager.showSoftInput(editText, 0);
        }
    }, 500);
}

3.パラメータの詳細:
  • 「stateUnspecified」ソフトキーボードのステータス(非表示か表示か)は指定されていません.適切なステータスまたはトピックに依存する設定が選択されます.これは、ソフトウェアディスクの動作のデフォルトの設定です.
  • 「stateUnchanged」ソフトキーボードは、メインウィンドウが前に表示されたときに、最後にどのような状態になったかにかかわらず、表示または非表示に保たれます.
  • 「stateHidden」ユーザーがActivityを選択すると、ソフトキーボードが非表示になります.つまり、ユーザーがActivityにナビゲートしたと判断した場合、別のActivityから離れるために戻るのではなく、Activityに戻ります.
  • 「stateAlwaysHidden」ソフトキーボードは常に非表示であり、Activityメインウィンドウがフォーカスを取得すると表示されます.
  • 「stateVisible」ソフトキーボードが表示され、それが正常に適切である場合(ユーザーがActivityメインウィンドウにナビゲートした場合).
  • 「stateAlwaysVisible」ユーザーがこのActivityを選択すると、ソフトキーボードが表示されます.つまり、ユーザーがActivityにナビゲートしたと判断した場合、別のActivityから離れるために戻るのではなく、Activityに移動します.
  • 「adjustUnspecified」は、Activityメインウィンドウのサイズを変更してソフトキーボードのスペースを残すか、ウィンドウの内容が画面上の現在の焦点で表示されるかどうかを指定しません.ウィンドウのコンテンツがスクロールできるレイアウトビューがあるかどうかに主に依存するモードが自動的に選択されます.このようなビューがある場合、このウィンドウはサイズを調整し、スクロールウィンドウの内容を小さな領域で表示できると仮定します.これはメインウィンドウのデフォルトの動作設定です.
  • 「adjustResize」Activityメインウィンドウは、常に画面のサイズを調整して、ソフトキーボードのスペースを残す.
  • 「adjustPan」Activityメインウィンドウは、ソフトキーボードのスペースを残すために画面のサイズを調整しません.逆に、現在のウィンドウの内容は自動的に移動し、現在のフォーカスがキーボードで上書きされず、ユーザーが常に入力内容の部分を見ることができるようにします.これは、ユーザがソフトキーボードをオフにして上書きされたコンテンツとの相互作用を得ることができるため、通常、サイズ変更は望ましくない.