2017-11-27 9 views
0

내가 뭘하려고 : 키보드가 대화 상자의 하단에 표시되어야합니다.키보드가 열려있을 때 대화 상자 크기를 조정하는 방법은 무엇입니까?

코드 : Dialog 클래스가 확장되었습니다. 내가 시도 무엇

window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT) 
     window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE) 
     window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE) 

:

  1. window.setSoftInputMode (WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)

  2. window.setSoftInputMode (WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN)

As I have studied here, SOFT_INPUT_ADJUST_RESIZ E는 작동해야하지만 내 경우에는 작동하지 않는 이유를 알아낼 수 없습니까? 활동 태그에

login Screen

+0

전체 대화 클래스 코드 게시 ... 더 나은 이해 – rafsanahmad007

답변

0

추가 다음과 같은 특성 또한 당신이 한 OnCreate 함수에서 코드 아래에 추가 할 필요가

android:windowSoftInputMode="adjustResize" 

(AndroidManifest.xml에) (MainActivity.java)

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

이것은 문제를 해결했으며 모든 해상도 에뮬레이터와 삼성 기기에서 완벽하게 작동했습니다. 그래도 Google Nexus S 기기에서는 실패했지만 가상 키보드가 EditText를 숨기는 동일한 문제를 다시 볼 수있었습니다.

아래 코드를 사용하여 키보드 상태에 따라 대화 상자를 조정할 수 있습니다.

alertDialog.getWindow().setSoftInputMode(
    WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 

- : 대신 경고의 대화 상자를 사용하는 경우 대화 상자가 아래에 변경을한다.

하나의 스타일 파일을 만듭니다. dialog.xml. 아래에 코드를 입력하십시오.

<style name="DialogStyle" parent="@android:style/Theme.Black.NoTitleBar.Fullscreen"> 
    <item name="android:windowFullscreen">false</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowSoftInputMode">stateUnchanged</item> 
    <item name="android:windowBackground">#22AAEA</item> 
</style> 

이제 대화 상자에 스타일을 적용하십시오. 속성 "부모"는 활동의 스타일처럼 "Theme.Black.NoTitleBar.Fullscreen을"이라고

final Dialog dialog = new Dialog(this , R.style.dialog); 

주의 사항. 속성 "android : windowFullScreen"은 false 여야합니다.

이제 소프트 키보드를 토글하면 대화 상자의 크기가 조정됩니다.

+0

안녕하세요, 부모 작업에서 android : windowSoftInputMode = "adjustResize"를 설정하려고했지만 결과가 동일합니다. –

+0

OnCreate에 있어야하는 코드를 아래에서 시도 했습니까? – androidOnHigh

+0

예. @androidOnHigh –