3
다른 답변을 제안했지만 로그를 볼 때 POSITION_NONE과 함께 getItemPosition이 반환 된 후 위치 0이 getItem에 호출되지 않았습니다. 나는 또한 getItemPosition이 리턴 될 때 destoryItem을 오버라이드하려고 시도했다.FragmentPager가 뷰를 업데이트하지 않음
공용 클래스 ProvidersActivityPagerAdapter는 FragmentPagerAdapter의 지원 라이브러리 버전 아무것도에서 항목을 파괴하지 않는 것 같습니다 FragmentPagerAdapter {
private ArrayList<String> fragments;
public ProvidersActivityPagerAdapter(FragmentManager fm) {
super(fm);
fragments=new ArrayList<String>();
if(provider.isInitialized()){
fragments.add(BaseDetailsFragment.class.getName());
}else{
fragments.add(BaseAuthFragment.class.getName());
}
this.fm=fm;
}
@Override
public int getCount(){
return fragments.size();
}
@Override
public int getItemPosition(Object object) {
AppUtils.logI("Get Item Position: "+POSITION_NONE+" "+object.getClass().getName());
return POSITION_NONE;
}
@Override
public Fragment getItem(int position) {
AppUtils.logI("Get Fragment for: "+position);
String f=fragments.get(position);
if(f.equals(BaseDetailsFragment.class.getName())){
return provider.getDetailFragment();
}
if(f.equals(BaseAuthFragment.class.getName())){
return provider.getAuthFragment();
}
if(f.equals(BaseSelectorFragment.class.getName())){
return provider.getCurrentSelector();
}
return new Fragment();
}
private void addItem(int loc,String fa,String tag){
this.fragments.add(loc,fa);
AppUtils.logI(fragments.toString());
notifyDataSetChanged(); //only creates the new fragment but not updating the old ones.
mViewPager.setCurrentItem(loc);
}
이것은 어디에도 기록되어 있지 않습니까? 저는이 문제를 잠시 동안 해결하려고 노력해 왔으며 2012 년에 게시 된이 답을 가로 질러 우연히 발견되었습니다. 나는 2015 년에도 이것이 여전히 내 문제가 될 수는 없다고 생각했지만 충분히 성공적이었습니다. 어떻게 해결되지 않았습니까? – NoChinDeluxe