[FragmentStatePagerAdapter 만 전하 페이지
"메모리 사용량을 최소화하는이. 미정 인 페이지 번호에 대한 오브젝트의 컬렉션을 통해 페이징을위한 더 나은 사용자가 다른 페이지로 이동으로 조각을 파괴"FragmentStatePagerAdapter 사용시이 FragmentStatePagerAdapter는 다음과 같이 작동합니다. 0 위치를 처음로드 할 때 수행되는 작업은로드 페이지 0으로, 페이지 1로 넘어갈 경우 페이지 3이로드되고 3 페이지가로드되고 이후에 (현재 위치). 실제 위치의 뒷면 탭으로 이동해도 뷰를 캐시하면 데이터가 다시로드되지 않습니다. 내 문제 이 동작에서 실제 뷰의 왼쪽 및 오른쪽보기가 캐시되어있는 것처럼 보입니다. , FragmentStatePagerAdapter이 PageAdapter을 상속이 클래스를 수정 언급 인터넷 접속 옵션을 찾을 수 생략이 동작
당신이 명확하지 않은 유래에있는 대답은, 내가 만약에 사람이 할 수있는하시기 바랍니다 5 일 동안이 문제가 해결되지 내가 어떻게 그것을 해결할 수 있는지 설명하도록 도와주세요, 나는 무한히 행복 할 것입니다. 아마 당신이 예상대로 작동하지 않습니다 [
//의 getItem FragmentStatePagerAdapter 캐시를 지 웁니다 사용자 정의 클래스는 가정으로 FragmentStatePagerAdapter 캐시를 지 웁니다 사용자 정의 클래스 (다만 현재의 단편을 팽창)
public class CostumAdapter extends FragmentStatePagerAdapter {
public CostumAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
System.out.println("POSICION: "+position);
Bundle bundle = new Bundle();
FragmentBebidas fragmentBebidas = new FragmentBebidas();
bundle.putInt("ID", Integer.parseInt(listMenu.get(position).getId()));
fragmentBebidas.setArguments(bundle);
return fragmentBebidas;
}
@Override
public CharSequence getPageTitle(int position) {
return menuTabs.get(position).toString();
}
@Override
public int getCount() {
return menuTabs.size();
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
super.destroyItem(container, position, object);
}
}
주위에 일이 여기에있다
원하는 것을 지우지 마십시오! –
선택한 위치의 뒤쪽 탭이 캐싱되어 돌아 왔을 때 탭 데이터가 더 이상 작동하지 않습니다. 나는 단지 현재 선택된 탭의 데이터를 업데이트하려고하지만, 다른 탭의 데이터는 업데이트하지 않으므로 각각의 탭에 대해 @ecishiajethava –