반응형
listview 클릭시 focus 유지하는 방법.
기본적으로 2가지 + 1 방법 이 있습니다. ( + 1 은 Selector 를 이용한 방법으로 다른 글을 참조하세요~ )
1. ListView 의 ChoiceMode 지정하기.
- ListView 의 ChoiceMode 를 "singleChoice" 모드로 주면, ListView 가 Click 되었을 때 focus 를 유지할 수 있습니다. Click 된 녀석이 다른 형태로 보입니다.
2. 수동으로 Background 조정하기
- 사실 1번의 방법은 Focus 를 줄 수는 있지만, 여러분이 원하는 방법이 아닐 것이라 사려됩니다. 여러분이 원하시는 건 아마 이런 것이겠지요?
이미지 출처 : http://www.androidhive.info/2011/10/android-listview-tutorial/
- 고개를 끄덕끄덕 하셨다면 바로 방법을 알려드리겠습니다. 방법은 이 글의 subTitle 과 같습니다. 수동으로 background 를 조정하는 것입니다.
1. Custom Adapter 를 만든다.
2. setFocus, releaseFocus 와 같은 함수를 만든다.
3. setFocus 와 releaseFocus 에서는 setBackgroundDrawable, setBackgroundResource, setBackgroundColor 등의 함수를 통해 Focus 를 set 또는 release 해준다.
4. 주의사항!! ListView 는 기본적으로 convertView 라는 녀석을 재활용하기 때문에 getView() 에서 현재 focus 된 index 를 관리하면서 focus 를 끄고 켜고를 해줘야 합니다. 이 부분이 이해가 안 가신다면, focus 주는 부분을 구현하시고, item 들을 많~~이 추가해서 테스트 해보세요. 바로 아~ 하실겁니다. ㅎ
반응형
댓글