สำหรับผู้อ่านในอนาคต
ฉันต้องการควบคุมปัญหานี้โดยเฉพาะดังนั้นนี่คือสิ่งที่ฉันทำ:
จากส่วนหรือกิจกรรมให้ซ่อนมุมมองอื่น ๆ ของคุณ (ที่ไม่จำเป็นขณะที่แป้นพิมพ์กำลังทำงานอยู่) จากนั้นเรียกคืนมุมมองเหล่านั้นเพื่อแก้ไขปัญหานี้:
rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect r = new Rect();
rootView.getWindowVisibleDisplayFrame(r);
int heightDiff = rootView.getRootView().getHeight() - (r.bottom - r.top);
if (heightDiff > 100) { // if more than 100 pixels, its probably a keyboard...
//ok now we know the keyboard is up...
view_one.setVisibility(View.GONE);
view_two.setVisibility(View.GONE);
}else{
//ok now we know the keyboard is down...
view_one.setVisibility(View.VISIBLE);
view_two.setVisibility(View.VISIBLE);
}
}
});