0

키보드 높이를 결정하기 위해 소프트 키보드 식별자를 Android에서 얻고 싶습니다. 최종 목표는 화면의 뷰를 키보드의 상단과 상태 표시 줄의 아래쪽 가운데에 세로로 배치하려는 것입니다. 다음 코드를 사용하여 상태 표시 줄 높이를 얻을 수 있습니다.android에서 소프트 키보드 식별자를 얻는 방법

int statusBarHeight = 0; 
int resourceId = Resources.GetIdentifier("status_bar_height", "dimen", "android"); 
if(resourceId > 0) { 
    statusBarHeight = Resources.GetDimensionPixelSize(resourceId); 
} 

비슷한 방식으로 소프트 키보드의 높이를 가져올 수 있습니까? iOS 앱과 Android 앱 사이에 백엔드를 공유하고 있기 때문에 Xamarin을 사용하고 있지만 코드는 Android와 매우 유사합니다. 나는 또한 내가 선호하는 코드로 전적으로 의견을 내고있다. 그래서 내 질문에 코드에서보기를 배치하기 위해 코드에서 키보드 높이를 어떻게 얻을 수 있습니까?

+0

나는 Viewtree 관찰자 글로벌 레이아웃 리스너를 제안 할 수 있습니다. 간단한 수학을 사용하여이 키보드의 높이를 얻을 수 있습니다 –

답변

0

ViewTree Observer을 사용하면됩니다. 루트보기를 사용하면 키보드가 나타날 때 새 크기를 계산할 수 있습니다. 그것은 나를 도움으로

아래의 질문은 당신을 도울 수 있습니다

Is there any way in android to get the height of virtual keyboard of device

+0

rootView.ViewTreeObserver.GlobalLayout + = (개체 발신자, EventArgs e) => { Rect r = new Rect(); layout.GetWindowVisibleDisplayFrame (r); int screenH = layout.RootView.Height; int heightDiff = screenH - (r.Bottom - r.Top); if (heightDiff> screenH/4) { keyboardHeight = heightDiff; } }; – tribute2ro

관련 문제