Fragement 를 viewpager 로 view 를 구성할때 is not currently in the fragmentmanager를
만나게 되어서 엄청 고생했습니다 ㅡㅜ
많은 분들이 고생을 덜어 주고자 포스팅 해봐요~
is not currently in the fragmentmanager 에러는 Fragment 에서 add , remove , replace 할때 생기는
에러입니다.
에러가 발생 하는 이유는 fragment adapter 에서 view 를 생성 하고 있는데 add 또는 replace , remove
를 할때 작업이 완료되지 않아서 나는 에러라고 보시면 될 것 같습니다.
그래서 자체적으로 해결 한 방법을 작성 해보겠습니다.
아래 방법 말고 해결 방법을 아시는 분은 댓글로 부탁 드려요 ^^
Viewpager 아답터 class 에서 아래 소스를 작성
Viewpager.setOnPageChangeListener(new OnPageChangeListener() { Fragment mFragment = getActivity().getSupportFragmentManager().findFragmentById( layout id ); @Override public void onPageSelected(int arg0) { if ( (mFragAdapter.getCount() -1) != arg0 && arg0 != 0 ) mFragment.ViewState(true); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) {} @Override public void onPageScrollStateChanged(int arg0) {} }); |
아답터에 추가될 Fragment 에 작성
getView().post(new Runnable() { @Override public void run() { Fragment mFragment = getActivity().getSupportFragmentManager().findFragmentById( layout id); mFragment.ViewState(false); } }); |
클릭 또는 remove , add , replace 이벤트가 발생하는 곳에 작성
if (ViewState == true){ Toast.makeText(getActivity(), "페이지 생성 중입니다.", Toast.LENGTH_SHORT).show(); return; } |