viewPager가 있는데 그 안에 조각을 추가합니다. 처음에는 4 조각이 있는데, 마지막 조각을 보여줍니다. 5, 6, 7, 8 첫 번째 단편에 도달하면. 나는 Api Call을 만들고 다른 4 개의 이전 단편에 대한 데이터를 얻습니다 : 1,2,3,4. 내 문제는 그것들을 통과하는 것입니다. 나는 이것을 얻는다 : 8, 7, 6, 5, 8, 7, 6, 5 끝내고 조각을 다시 입력하면 잘 동작한다. 하지만 항상 처음에는 캐시 된 다른 조각을 가지고있는 것 같습니다.ViewPager가 올바른 페이지를 표시하지 않습니다
private List<PSActivityFragment> getFragments(){
UserRecord profile = UserRecord.getMyUser(PSProfileActivity.this);
CrudStateCallback crudStateCallback = new CrudStateCallback() {
@Override
public void onResponse(String string) {
}
};
List<PSActivityFragment> fList = new ArrayList<PSActivityFragment>();
if(profile != null) {
loader.setVisibility(View.GONE);
if(profile.getMonths().size() > 0) {
for (PSUserActivityMonth month : profile.getMonths()){
Log.i("","month is fragments created are:" + month);
PSActivityFragment psaf1 = new PSActivityFragment();
psaf1.init(month, crudStateCallback);
fList.add(psaf1);
}
}
}else{
loader.setVisibility(View.VISIBLE);
}
return fList;
}
내가 새로운 데이터를 얻을 때마다 :
이 내가 조각을 만드는 방법이다. 나는 어댑터 재 : 내가 대신 다시 그냥 다시 어댑터에 조각을 설정 다시 어댑터를 설정하는 시도
pager.removeAllViews();
pager = null;
pager = (ViewPager) findViewById(R.id.viewpager);
final List<PSActivityFragment> fragments = getFragments();
myPagerAdapter = new MyPageAdapter(getSupportFragmentManager(), fragments);
pager.setAdapter(myPagerAdapter);
을하고 notifyDataSetChanged를 호출합니다. 하지만 여전히 같은 문제가 있습니다. 조각이 어딘가에 캐시되어 있습니까? 왜 이런 일이 생길까요? 는 I 로그를 점검하고 단편 정상적인 순서로 생성된다 : 16 월 16 일이, 제 (16 행진 수 6 월 16
06-02 14:16:21.514: I/(14192): month is fragments created are:PSUserActivityMonth{category='u/23', month=11, year=2015, weeks=1}
06-02 14:16:21.515: I/(14192): month is fragments created are:PSUserActivityMonth{category='u/23', month=12, year=2015, weeks=5}
06-02 14:16:21.515: I/(14192): month is fragments created are:PSUserActivityMonth{category='u/23', month=1, year=2016, weeks=5}
06-02 14:16:21.515: I/(14192): month is fragments created are:PSUserActivityMonth{category='u/23', month=2, year=2016, weeks=5}
06-02 14:16:21.515: I/(14192): month is fragments created are:PSUserActivityMonth{category='u/23', month=3, year=2016, weeks=5}
06-02 14:16:21.516: I/(14192): month is fragments created are:PSUserActivityMonth{category='u/23', month=4, year=2016, weeks=5}
06-02 14:16:21.516: I/(14192): month is fragments created are:PSUserActivityMonth{category='u/23', month=5, year=2016, weeks=6}
06-02 14:16:21.516: I/(14192): month is fragments created are:PSUserActivityMonth{category='u/23', month=6, year=2016, weeks=1}
이들은 개월 :이 호출기를 순환 후에 표시되어야 를 위해) 그리고 그 다음에 feb 16, jan 16, dec 15, nov15. 대신 I 참조 : 6 월 16 일 16 월 16 년 6 월 16 일 (제 1 경우) 후 16 행진 있고, 16 월 16, 16 행진 수도 다시
어댑터 코드 :
public class MyPageAdapter extends FragmentPagerAdapter {
private List<PSActivityFragment> fragments;
public MyPageAdapter(FragmentManager fm, List<PSActivityFragment> fragments) {
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
}
PS : 내 활동은 fragmentActivity를 확장하고 어댑터를 만들 때 볼 수있는 것처럼 getSupportFragmentManager를 사용합니다. 이것이 문제가 될 수 있습니까?
어댑터 코드를 게시 할 수 있습니까? – arsena
조각을 어떻게 게시했는지 게시해야합니까? 그것이 어떻게 환영받을 수 있는지 보지 마라. –