Ändern Sie das Fragment mit ViewPager
ich benutzePagerSlidingTab
Bibliothek fürViewPager
. Und ich möchte Fragment beim Scrollen von Registerkarten ändern. Es funktioniert gut. Schau dir meinen Code an.
ich benutzeAsynTask()
auf jederFragment
.
Wenn die App mit der Hauptaktivität geöffnet wird, wird das erste Fragment an die Aktivität angehängt. Es werden jedoch zwei angezeigtAsynTask()
Dialogmeldung, eine von der Ersten und eine von der ZweitenFragment
. Und wenn ich zur zweiten Registerkarte scrolle, wird die Dialogmeldung von Third angezeigtFragment
.
Wenn ich also in Registerkarten von links nach rechts scrolle, wird dieFragment
rechts zum aktuellen fragment wird angezeigt und wenn ich von rechts nach links scrolle, dieFragment
Links zum StromFragment
wird angezeigt.
Bitte helfen Sie mir, das Problem zu lösen.
Mein Code:
public class PageSlidingTabStripFragment extends Fragment {
public static final String TAG = PageSlidingTabStripFragment.class
.getSimpleName();
public static PageSlidingTabStripFragment newInstance() {
return new PageSlidingTabStripFragment();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.pager, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) view
.findViewById(R.id.tabs);
ViewPager pager = (ViewPager) view.findViewById(R.id.pager);
MyPagerAdapter adapter = new MyPagerAdapter(getChildFragmentManager());
pager.setAdapter(adapter);
tabs.setViewPager(pager);
}
public class MyPagerAdapter extends FragmentPagerAdapter {
public MyPagerAdapter(android.support.v4.app.FragmentManager fm) {
super(fm);
}
private final String[] TITLES = { "Instant Opportunity", "Events",
"Experts" };
@Override
public CharSequence getPageTitle(int position) {
return TITLES[position];
}
@Override
public int getCount() {
return TITLES.length;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new InstantOpportunity();
case 1:
return new Events();
case 2:
return new Experts();
default:
break;
}
return null;
}
}
}