Fragment내에서 ViewPager를 선언하고, 그 ViewPager내에 또 다수의 Fragment들이 들어가도록 코드를 작성하고 있었다.
대략 다음과 같은 코드를 사용했다.
// Fragment의 OnCreateView() 내부코드!
MoviePagerAdapter adapter = new MoviePagerAdapter(getFragmentManager());
for(Movie movie : movies){
...
adapter.addItem(frag);
}
pager.setAdapter(adapter);
처음 앱이 작동될때는 문제없이 Fragment내에 ViewPager가 표시되었다.
하지만 다른 액티비티로 이동하여 onDestroyView()가 호출된 이후,
onCreateView(), onResume()등을 거쳐 다시 해당 Fragment가 화면에 올라왔을때는 ViewPager가 사라지는 문제가 발생했다.(다른 버튼과 텍스트박스 등은 문제없이 보여짐!)
onSaveInstanceState(), onViewStateRestore()에서의 문제인줄알고 그쪽만 생각했는데
알고보니 다른곳에 문제가 있었다.
Fragment안에서 또다른 Fragment를 관리하는 경우에는,
getFragmentManager()가 아닌, getChildFragmentManager() 를 사용해야 한다!
따라서,
// Fragment의 OnCreateView() 내부코드!
MoviePagerAdapter adapter = new MoviePagerAdapter(getChildFragmentManager());
for(Movie movie : movies){
...
adapter.addItem(frag);
}
pager.setAdapter(adapter);
Child 한 단어만 추가했는데 문제가 바로 해결되었다,,, 허무
'프로그래밍 > 안드로이드 앱 프로그래밍' 카테고리의 다른 글
[안드로이드] 위험권한 부여하기(마시멜로우(sdk23)이후) (0) | 2019.04.24 |
---|---|
[안드로이드] 브로드캐스트 리시버(Broadcast receiver) - 문자(SMS)메세지 이벤트처리 (0) | 2019.04.24 |
[안드로이드] Service 활용하기(백그라운드 실행) (2) | 2019.04.19 |
액티비티 수명주기 - SharedPreferences를 활용한 데이터 저장 및 복구(onPause/onResume) (0) | 2019.04.19 |
[Android] 버튼 선택여부에 따라 다른 drawable 설정, 이벤트 처리 (0) | 2019.02.08 |