Фрагмент показывает пустой белый экран - PullRequest
0 голосов
/ 20 сентября 2018

Я сталкиваюсь со странной проблемой и совершенно не понимаю, что является причиной проблемы.

У меня есть одно Mainactivity с макетом пейджера, где вкладки содержат две вкладки "Sec A" и "Sec B".В разделах А и В у меня есть еще один фрагмент с макетом пейджера, и теперь каждый из них содержит семь дней недели, чтобы показать расписание занятий нашего университета.

Теперь проблема в том, когда приложение запускается впервые, Если я загружаю фрагмент Sec A, то он очень хорошо загружает и заполняет дочерний фрагмент семи дней, но когда я нажимаю вкладку Sec B ... тогда все семь дней раздела B показывают белый экран, хотя я использовал один и тот же файл макета,база данных и класс адаптера для Sec A и B. Если вместо этого я загружаю Sec B, то Sec B загружается, но Sec A теперь показывает белый экран.

Вот ссылка для всего моего проекта https://github.com/BlueYeti1881/routine

Файловая структура моего проекта enter image description here

Фрагмент My Sec A равен enter image description here

, а фрагмент Sec B равен

enter image description here

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);
    }
}
...