私は、2つのフラグメントを持つViewPagerを含むAndroidアプリを持っています。最初のフラグメントにはEditTextフィールドが含まれています。アプリが起動すると、そのフィールドにすぐにフォーカスが当てられ、ソフトキーボードが起動されます(これを実行します)。 2番目のフラグメントはリストのみを含んでいます(編集可能なテキストフィールドはありません)。フラグメント1からフラグメント2にスワイプすると、キーボードが消えてしまいます。私が試したことは何もないようです。キーボードは、ビューに留まるだけでなく、フラグメント1のEditTextフィールドを更新し続けます。ViewPagerのフラグメントからソフトキーボードを隠す
私は、キーボードを隠すために間違ったコードを使用しているか、または間違った場所にキーボードを置いています。誰かが正しい実装の例を投稿することができれば、非常に感謝しています!
私の最新の試みは、フラグメント1のonDetachでキーボードを非表示にするコードを配置することでした()メソッド:windowSoftInputMode =「stateHiddenを」:あなたのAndroidManifestあなたが活動宣言アンドロイドに追加すべきで
@Override
public void onDetach()
{
super.onDetach();
InputMethodManager imm = (InputMethodManager) this.context.getSystemService(Context.INPUT_METHOD_SERVICE);
// I'VE TRIED ALL THREE BELOW, NONE OF THEM WORK...
// imm.hideSoftInputFromWindow(this.messageView.getWindowToken(), 0);
// imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
// this.context.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
}
が、これはすべての時間を表示するからキーボードを防ぐことはできませんか?フラグメント2で非表示にしたいだけです。 – Jabari
これにより、アクティビティにフラグメントがロードされたときにソフトキーボードが表示されなくなります。しかし、EditTextをクリックすると、ソフトキーボードが表示されます。アクティビティによって読み込まれたすべてのフラグメントに影響します。常に非表示にし、ソフトキーボードを表示しないようにするには、マニフェストでandroid:windowSoftInputModeでstateAlwaysHiddenを使用する必要があります。私の英語のために申し訳ありません。 – ClarkXP
ほとんど動作しますが、別のフラグメントに切り替えるとキーボードは隠されません。 – Timmmm