우동우동우's note

NumberPicker 포커스 해제하기 본문

Java & Android

NumberPicker 포커스 해제하기

우동우동우 2016. 5. 6. 13:09

NumberPicker를 사용하면 NumberPicker 가 Focus를 얻어서 키보드가 계속 나타난다. 

이것 때문에 몇시간 삽질한 것 같다. 

그런데 이걸 해결하는 건 생각 보다 간단하다. 딱 2가지 장치만 해주면 끝난다. 


1. NumberPicker의 Focus block 걸어주기

--------------

numberPicker.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);

--------------

위 코드를 onCreate함수에 넣어주면 된다. 이렇게 되면 NumberPicker 안에 있는 EditText가 Focus를 가져오지 못하게 된다. 때문에 NumberPicker에 숫자를 입력할 수 없게 된다. 숫자 입력이 어렵다면 NumberPicker의 기능을 다 사용할 수 없다. 


2. NumberPicker 설정 원래대로 바꿔주기

--------------

numberPicker.setOnTouchListener(new View.OnTouchListener() {
 @Override
 public boolean onTouch(View v, MotionEvent event) {
  numberPicker.setDescendantFocusability(
      NumberPicker.FOCUS_AFTER_DESCENDANTS);
  return false;
 }
});

--------------

위 코드 또한 onCreat안에 넣어 주면 된다. 지금 보니 보안할 점이 있어 보이지만 귀찮기 때문에 누군가 내 글을 보고 발전 시키는 사람이 있으면 그때 고치길 바란다. 위 코드를 넣으면 touch를 하는 순간 Focus를 가져 올 수 있게 해놓은 것이다. 그러면 다시 NumberPicker의 기능을 잘 활용할 수 있게된다는 것이다. 


어떤가요? 참 쉽죠? ㅋㅋ


이런 트릭 없이 그냥 잘 쓸수 있게 만들어 주면 좋을 텐데 말이죠 ㅜ 

누군가에게 좋은 팁이 되길 바라며 그럼 이만 마치겠습니다. ㅋ

Comments