viewpager에 3 개의 탭이 있습니다. 탭 A, B, C으로 전화 할 수 있습니다. 각 탭에는 자체 조각이 있으며 frag1, frag2, frag3이라고 할 수 있습니다. 내가 원하는 탭 A의 frag1을 새로운 조각 frag4으로 대체하고 뷰 페이지의 다른 탭은 그대로 둡니다. 조각을 바꾸려고 시도했지만 작동하지 않습니다. 내 pageradapter에서 뭔가를 구현해야합니까?뷰 페이지 탭의 위치에서 조각을 바꾸는 방법은 무엇입니까?
public class SectionsPagerAdapter extends FragmentPagerAdapter {
private FragmentManager mFragmentManager;
private Fragment frag = null;
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
mFragmentManager = fm;
}
public void onSwitchToNextFragment() {
mFragmentManager.beginTransaction().remove(frag)
.commit();
if (frag instanceof Fragment1){
Log.v("here","swapping");
frag = Fragment4.newInstance();
}
Log.v("here","notified");
notifyDataSetChanged();
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
frag = Fragment1.newInstance();
Log.v("here","in getitem");
return frag;
default:
Log.v("here","in default");
return Fragment2.newInstance();
}
}
@Override
public int getCount() {
// Show 3 total pages.
return 3;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "SECTION 1";
case 1:
return "SECTION 2";
case 2:
return "SECTION 3";
}
return null;
}
public void switchFrag(){
onSwitchToNextFragment();
// mFragmentManager.beginTransaction().replace(R.id.container,frag).commit();
// mFragmentManager.beginTransaction().add(frag).commit();
notifyDataSetChanged();
}