요즘 토익 공부를 하면서
학원에서 하는 스터디도 있고, 영어 단어를 외울 일이 많아서
내가 영어 단어를 외울 때 사용할 단어장 앱을 만들게 되었다.
간단하게 단어가 하나씩 뜻과 함께 나타나고
단어만 보거나, 뜻만 볼 수 있게 만들고 있다.
그리고 단어를 누르면 발음을 들려주도록 기획하고 있다.
빠르게 제작할 목적이라서 노트에 간략하게 기획만 하고 제작에 들어갔다.
단어 버튼을 누르면 단어가 사라지고,
뜻 버튼을 누르면 뜻이 사라져야 하는데
ViewPager에서는 양쪽의 View를 미리로딩을해서
현재 View에서 사라지면 바로 다음이나 이전 View에서는
그대로 남아 있는 문제가 발생했다.
구글링을 통해서 찾은 해결책은
getItemPosition 함수를 다음과 같이 재 정의 하면
notifyDataSetChange 함수가 호출 될 때
페이지를 새로 그리기 때문에 문제를 해결 할 수 있었다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | @Override public Object instantiateItem(final ViewGroup container, final int position) { ... Button wordDel = (Button)layout.findViewById(R.id.wordDel); wordDel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { TextStatus.wordStatus = !TextStatus.wordStatus; textWord.setTextColor(Color.parseColor(wordColor())); notifyDataSetChanged(); } }); ... } @Override public void notifyDataSetChanged() { super.notifyDataSetChanged(); } @Override public int getItemPosition(Object object) { return POSITION_NONE; } | cs |
'End > #5 스터디용 단어 앱' 카테고리의 다른 글
[Android/안드로이드]단어 암기용/단어장 앱 만들기(2)[GitHub] (4) | 2017.02.05 |
---|
댓글