2017-11-08 15 views
1

그래서 앱의 몰입 형 모드를 유지해야합니다. 앱이 몰입 형 모드에서 전체 화면 웹보기를 가지고 있지만 문제는 웹보기 콘텐츠에 텍스트 상자가있는 것입니다. 사용자가 텍스트 상자를 터치하면 소프트 키 보드가 트리거되어 몰입 형 모드가 비활성화됩니다. 텍스트 상자에 포커스가 없어지면 다시 활성화 된 몰입 형 모드로 자바 스크립트 인터페이스가 트리거됩니다. 그러나 문제는 소프트 키 보드가 표시 될 때 숨기기/되감기 버튼입니다. Android에서 키보드 이벤트 숨기기

here is the image

나는 onKeyDown, dispatchKeyEventonBackPressed을 시도했지만 디버깅 할 때 그들 중 누구도 트리거되지 않았다. 소프트 키보드의 가시성을 얻기 위해

답변

1

, 당신은이 작업을 수행해야한다 :

코딩
contentView.getViewTreeObserver().addOnGlobalLayoutListener(new 
ViewTreeObserver.OnGlobalLayoutListener() { 
@Override 
public void onGlobalLayout() { 

Rect r = new Rect(); 
contentView.getWindowVisibleDisplayFrame(r); 
int screenHeight = contentView.getRootView().getHeight(); 

int keypadHeight = screenHeight - r.bottom; 
if (keypadHeight > screenHeight * 0.15) { 
    // keyboard is opened 
} 
else { 
    // keyboard is closed 
    } 
} 
}); 

해피!

+0

그래서 전체 레이아웃의 상위 뷰에 이것을 바인딩해야합니까? –