Я сталкиваюсь со странной проблемой и совершенно не понимаю, что является причиной проблемы.
У меня есть одно Mainactivity с макетом пейджера, где вкладки содержат две вкладки "Sec A" и "Sec B".В разделах А и В у меня есть еще один фрагмент с макетом пейджера, и теперь каждый из них содержит семь дней недели, чтобы показать расписание занятий нашего университета.
Теперь проблема в том, когда приложение запускается впервые, Если я загружаю фрагмент Sec A, то он очень хорошо загружает и заполняет дочерний фрагмент семи дней, но когда я нажимаю вкладку Sec B ... тогда все семь дней раздела B показывают белый экран, хотя я использовал один и тот же файл макета,база данных и класс адаптера для Sec A и B. Если вместо этого я загружаю Sec B, то Sec B загружается, но Sec A теперь показывает белый экран.
Вот ссылка для всего моего проекта https://github.com/BlueYeti1881/routine
Файловая структура моего проекта
Фрагмент My Sec A равен
, а фрагмент Sec B равен
My Sec Фрагмент класса
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.activity_section, container, false);
ViewPager viewPager = (ViewPager) view.findViewById(R.id.pager_dayscount);
ViewPagerAdapter adapter = new ViewPagerAdapter(getActivity().getSupportFragmentManager());
adapter.addFragment(new sunA(), "Sun");
adapter.addFragment(new monA(), "Mon");
adapter.addFragment(new tueA(), "Tue");
adapter.addFragment(new wedA(), "Wed");
adapter.addFragment(new thuA(), "Thu");
adapter.addFragment(new friA(), "Fri");
viewPager.setAdapter(adapter);
TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tabs_dayscount);
tabLayout.setupWithViewPager(viewPager);
return view;
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
}
, который совпадает с B, и мой класс адаптера
public class AmonAdapter extends RecyclerView.Adapter<AmonAdapter.Holder> {
private static final String TAG = AmonAdapter.class.getSimpleName();
private final FlowerClickListener mListener;
private List<Flower> mFlowers;
public AmonAdapter(FlowerClickListener listener) {
mFlowers = new ArrayList<>();
mListener = listener;
}
@Override
public Holder onCreateViewHolder(ViewGroup parent, int viewType) {
View row = LayoutInflater.from(parent.getContext()).inflate(R.layout.days_item, null, false);
return new Holder(row);
}
@Override
public void onBindViewHolder(Holder holder, int position) {
Flower currFlower = mFlowers.get(position);
holder.mName.setText(currFlower.getName());
holder.mPrice.setText(String.format("$%.2f", currFlower.getPrice()));
}
@Override
public int getItemCount() {
return mFlowers.size();
}
public void addFlower(Flower flower) {
mFlowers.add(flower);
notifyDataSetChanged();
}
public void reset() {
mFlowers.clear();
notifyDataSetChanged();
}
public class Holder extends RecyclerView.ViewHolder implements View.OnClickListener {
private TextView mName, mPrice;
public Holder(View itemView) {
super(itemView);
mName = (TextView) itemView.findViewById(R.id.flowerName);
mPrice = (TextView) itemView.findViewById(R.id.flowerPrice);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
mListener.onClick(getLayoutPosition());
}
}
public interface FlowerClickListener {
void onClick(int position);
}
}