Ich verwende zwei Fragmente in Viewpager. Im zweiten Fragment spiele ich ein Video von der URL mit dem Exoplayer. Mein Problem ist, dass beim Start der Aktivität das Video automatisch geladen wird, da alle Fragmente automatisch vom viewpager erstellt werden. So erstellen Sie jeweils ein Fragment, so dass das zweite Fragment das Video nur wiedergeben kann, wenn es für den Benutzer sichtbar ist (indem Sie auf den Tab tippen oder mit dem Finger darauf tippen).So erstellen Sie ein Fragment zu einer Zeit mit Viewpager
Der viewpager Adapter
class ViewPagerAdapter extends FragmentStatePagerAdapter {
Bundle bundle;
public ViewPagerAdapter(FragmentManager manager, Bundle bundle) {
super(manager);
this.bundle = bundle;
}
@Override
public Fragment getItem(int position) {
Log.d("getItem", position + "");
switch (position) {
case 0:
IngredientListFragment ingredientListFragment = new IngredientListFragment();
ingredientListFragment.setArguments(bundle);
return ingredientListFragment;
case 1:
StepsListFragment stepsListFragment = new StepsListFragment();
stepsListFragment.setArguments(bundle);
return stepsListFragment;
default:
IngredientListFragment ing = new IngredientListFragment();
ing.setArguments(bundle);
return ing;
}
}
@Override
public int getCount() {
return 2;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "Ingredients";
case 1:
return "Steps";
default:
return "Ingredients";
}
}
}
Innerhalb der Aktivität
final ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager(), bundle);
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);
Bitte um Hilfe.
Vielen Dank @ Divyesh-Patel. Ihre Lösung funktioniert gut. – scalp007