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

한번 그려졌던 fragment다시 보여 주기

0 추천
안녕하세요 fragment관련해서 질문이 있습니다.

 

한번 호출 되었던 1번 fragment가 있고 그 위에 다른 fragment가 싸일텐데

 

다른쪽에서 다시 1번 fragment를 호출 할 때

 

해당 1번 fragment를 다시 그리지 않고 onCreateview를 다시 타지 않고

 

이전에 그렸던 그화면 그대로 보여주는 방법이 없나요?

 

fragment관련 api를 뒤져바도 show hide 머 이런것들이 있던데

 

show해도 보여지지 않고 hide하고 show해도 보여 지지 않고 답답하네요

 

이전에 그려졌던 fragment 화면 그대로 갱신없이 부르는 방법 좀 알고 싶습니다. ㅠㅠ
뱀휅휅 (1,170 포인트) 님이 2015년 8월 5일 질문

2개의 답변

0 추천

결론부터 말씀드리면 다시보여줄 수 있지만 onCreateView를 타지않고는 않됩니다.

생명주기상 Fragment의 backStack을 쌓는다 하더라도 onDestory()되기전 onDestoryView()에서onCreateView를 호출합니다.

 

1. 이 경우는 backStack을 저장하는 방법입니다.

Fragment를 더 쌓기위해 Add하실때 addToBackStack을 주시면 됩니다.

예시)

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fl_center, fragment);
transaction.addToBackStack(null);
transaction.commit();
 
이렇게 추가하시면 뒤로갈때 이전 프레그먼트가 불려집니다.
 
 
2. 위의 경우가 아니고 onCreateView()가 절대 호출 되어서 안된다 하시면 xml에서 FrameLayout을 겹친다음 Controller단에서 경우에 따라 setVisibility를 Gone, VISIBLE 하시는 방법이 있습니다.
 
도움 되셨나 모르겠네요ㅎㅎ
같이가자심해로 (1,150 포인트) 님이 2015년 8월 5일 답변
0 추천
fragment 를 ArrayList에 담아 둬서 가져갈때 저장된 List의 fragment를 반환하게 해 주면 됩니다.

아래 링크를 보시면 ViewPager 사용 시 기존 Fragment를 재활용하는 예제가 있습니다.

http://stackoverflow.com/questions/17710727/android-fragments-stored-as-array-in-fragmentpageradapter-not-refreshed-after-le
익명사용자 님이 2015년 8월 5일 답변
2015년 8월 5일 수정
...