私は2つのFrameLayoutを使用していますが、両方にEditTextが含まれています。レイアウトの下部にあるeditTextをクリックすると、softKeyboardの上に表示されますが、frameLayoutが他のFrameLayoutの上にあるeditBoxをクリックすると、変更されず、後ろに配置されます一番下にあるキーボードとframeLayoutが再び場所を変え、ソフトキーボードの上に表示されます。
私は試した、
mMessageBox.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
Commons.logCatchya("onFocusListener changed !");
if (hasFocus) {
Commons.logCatchya("onFocusListener hasFocus !");
}
else {
Commons.logCatchya("onFocusListener do not hav focus !");
}
}
});
mMessageBox.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
Commons.logCatchya("setOnKeyListener :" + event.getAction() + " keyCode :" + keyCode);
return false;
}
});
mProfileStatusBox.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
Commons.logCatchya("onFocusListener mProfileStatusBox changed !");
if (hasFocus) {
Commons.logCatchya("onFocusListener mProfileStatusBox hasFocus !");
}
else {
Commons.logCatchya("onFocusListener mProfileStatusBox do not hav focus !");
}
}
});
しかし、画面上のソフトキーボードボタンを非表示にするをクリックすると、カーソルは使用した編集ボックスに残ります。この問題は FrameLayout が原因ですか? この問題を解決するために何をすべきかはわかりません。