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

뷰의 순서에 대해서 궁금합니다.

0 추천

0~4 까지 다섯개의 뷰가 있을 경우에, 뷰의 이동시마다 메세지를 띄운다면,

 

0 >> 1 이동, (출력)          1 >> 0 이동, (FALSE)

1 >> 2 이동, (출력)          2 >> 1 이동 (출력)

2 >> 3 이동, (출력)          3 >> 2 이동 (출력)

3 >> 4 이동, (FALSE)        4 >> 3 이동, (출력)

 

왜 이런 결과가 나오는지 모르겠습니다.

1에서 0(시작점)으로 갈때와 3에서 4(끝점)로 갈 때 반응이 없습니다. 

혹시 이런 현상에 대해 알고 계시다면 조언 부탁드리겠습니다.

감사합니다.

 

 

 

익명사용자 님이 2016년 3월 16일 질문

1개의 답변

0 추천
 
채택된 답변
질문의 내용을 잘 모르겠네요.

혹시 ViewPager 말씀하시는건가요?

 

대강 유추해 보면 viewpager은 미리 다음페이지를 만들어놓고 대기합니다.

따라서 0 >> 1이동시 출력이라는 부분은 프래그먼트 생성시에 뭔가 하신거 같은데

0 >> 1일때는 2번이 만들어지구요.

1 >> 2일때는 3번이.

2 >> 3일때는 4번이 미리 만들어집니다.

따라서, 3 >> 4로 갈때는, 더이상 만들게 없기 떄문에 아무것도 안 만들구요.

 

반대의 경우에도 마찬가지입니다.

1 >> 0으로 갈떄는 아무것도 만들게 없으니 안 만드는거구요.

2 >> 1로 갈때는 0을 미리 만들어 놓는거고

3 >> 2의 경우는 1을

4 >> 3의 경우에는 2를 미리 만들어 놓는다고 보시면 됩니다.

맞는지 모르겠네요
모나미153 (17,540 포인트) 님이 2016년 3월 16일 답변
죄송합니다. 질문이 빈약했습니다.
네 맞습니다. viewpager 입니다.
설명 감사합니다 ㅠㅠ
그럼 이미 만들어진 마지막 뷰를 위한 작업은 어떻게 처리를 해야 할까요
이동시에 구체적으로 어떤 작업을 하려고 하시는건지 알 수 있을까요?
이동시 마다 Toast 메세지를 띄우고 있습니다.
탭메뉴의 현재 포지션 값을 얻어와서 스위치문에 0일 때는 번호0 // 1일때는 번호1을 띄우고 있었습니다. 말씀하신대로 마지막 뷰에서는 아무 반응이 없어서 고심하던 중이였습니다. ㅠㅠ
toast를 어느부분에서 띄우시는건가요?
프래그먼트를 상속받는 클래스 안에서 onCreateView에서 작업을 하고 있었습니다. 관심 갖아 주셔서 정말 감사합니다.
뷰페이저에 OnPageChangeListener리스너 등록 후
onPageSelected에서 처리하시면 될것 같습니다
조언 진심으로 감사합니다.
좋은 하루 되세요!
...