마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

소프트 키보드 올라 오거나 내려갈때 이벤트

0 추천
키보드가 올라오거나 내려올때 이벤트를 받고 싶은데 검색하니까 몇가지가 있는데 안되더라구요

자체적으로 지원을 안하나요?
흠바바 (640 포인트) 님이 2015년 12월 1일 질문

1개의 답변

0 추천
https://gist.github.com/felHR85/6070f643d25f5a0b3674 소스를 확인해 보세요. ^^
mcsong (43,360 포인트) 님이 2015년 12월 1일 답변
이게 EdittextView만 되더라구요 그리고 이걸로 연것만 콜백이오던데요
네.. 보통은 edittext에 포커스가 가면 키보드가 올라오니, 이 형태로 이벤트 콜백을 받아서 처리하면 될 것 같은데.. 버튼등에서 강제로 키보드를 올리시는 형태인가요?

아래는 화면의 크기를 확인해서 크기가 높이가 2/3인 경우 키보드가 들어왔다고 판단하는 코드입니다.
final RelativeLayout view = (RelativeLayout)findViewById(R.id.activity_loading);
view.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
    @Override
        public void onGlobalLayout() {
            if ((view.getRootView().getHeight() - view.getHeight()) >    
                    view.getRootView().getHeight()/3) {
            
  // keyboard is open

            } else {
             
  // keyboard is closed
            
     }
        }
    });
아니요 edittext랑 textview 2개에 쓰는데요
editTitle.setOnFocusChangeListener 에  softKeyboard.openSoftKeyboard(); 써버리니까요. 콜백함수에 show떳다가 바로 hide 함수가 호출해버리네요 기존에 자동으로 떠버리는 키보드랑 충돌일이나는거 같은데.

//
확인해보니까 매니페스트에서 android:windowSoftInputMode="adjustResize|adjustPan"
이렇게 2개주니까 그런거같은데 저는 eidttext에서 edittext로 스크롤자동안되게 하려고 하는데 휴
키보드 open했는데  콜백에  show 떳다가 hide 뜨는 이유 아시나요 ㅜㅜ
흠.. https://gist.github.com/felHR85/6070f643d25f5a0b3674  소스에 버그가 있네요.. 스레드에서 show하고 hide하네요.. ㅠ.ㅠ 아무래도 onMeasure  메서드에서 Layout의 크기에 따라서 키보드가 올라왔다 아니다를 판단해야 겠는데요.. ^^;;
...