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의 기능을 잘 활용할 수 있게된다는 것이다.
어떤가요? 참 쉽죠? ㅋㅋ
이런 트릭 없이 그냥 잘 쓸수 있게 만들어 주면 좋을 텐데 말이죠 ㅜ
누군가에게 좋은 팁이 되길 바라며 그럼 이만 마치겠습니다. ㅋ