두 개의 FrameLayout을 모두 사용하고 있습니다. 레이아웃의 맨 아래에있는 editText를 클릭하면 softKeyboard 위에 표시 될 수 있지만 editBox를 클릭하면 frameLayout이 다른 FrameLayout 장소는 바뀌지 않고 키보드 뒤에 배치되고 바닥에있는 frameLayout이 다시 위치를 변경하고 소프트 키보드 위에 표시됩니다.EditText를 소프트 키보드 위에 놓으십시오
내가 시도
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 때문에 발생합니까? 이 문제를 해결하기 위해 무엇을해야합니까? 당신의 활동에 활동 태그
android:configChanges="keyboardHidden|orientation"
이 당신을 위해 작동하지 않는 경우이