When adding fragments to the adapter, the first TariffUserAndQuestFragment is not displayed, everything is fine with the second TariffOurServicesFragment. I tried swapping them anyway TariffUserAndQuestFragment is empty. Checked without ViewPagerTariffAdapter(just using DataBinding) everything is displayed correctly)
MainActivity
private void setupViewPager(ViewPager viewPager) {
ViewPagerTariffAdapter adapter = new ViewPagerTariffAdapter(getSupportFragmentManager());
adapter.addFragment(new TariffUserAndQuestFragment(this, tariffs), "Тарифы");
adapter.addFragment(new TariffOurServicesFragment(this, services), Strings.isguest ? "Акции" : "Услуги");
viewPager.setAdapter(adapter);
}
TariffUserAndQuestFragment
public class TariffUserAndQuestFragment extends Fragment {
Context context;
List<Tarif> list;
public TariffUserAndQuestFragment(Context context, List<Tarif> list) {
this.context = context;
this.list = list;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
RecyclerView recyclerView = (RecyclerView) inflater.inflate(R.layout.content_tarifs,
container, false);
recyclerView.setLayoutManager(new LinearLayoutManager(context));
if (!Strings.isguest)
recyclerView.setAdapter(new TariffUserAdapterBinding(list));
else
recyclerView.setAdapter(new TariffGuestAdapterBinding(list));
return recyclerView;
}
}
TariffOurServicesFragment
public class TariffOurServicesFragment extends Fragment {
Context context;
List<OurService> list;
public TariffOurServicesFragment(Context context, List<OurService> list) {
this.context = context;
this.list = list;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
RecyclerView recyclerView = (RecyclerView) inflater.inflate(R.layout.content_tarifs,
container, false);
recyclerView.setLayoutManager(new LinearLayoutManager(context));
recyclerView.setAdapter(new OurServiceBindingAdapter(list));
return recyclerView;
}
}
ViewPagerTariffAdapter
public class ViewPagerTariffAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new CopyOnWriteArrayList<>();
private final List<String> mFragmentTitleList = new CopyOnWriteArrayList<>();
public ViewPagerTariffAdapter(FragmentManager fm) {
super(fm);
}
@NonNull
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
}