片段显示空白的屏幕

时间:2018-09-20 12:54:30

标签: java android android-fragments android-viewpager

我正面临一个奇怪的问题,对导致问题的原因一无所知。

我有一个Mainactivity与分页器布局,其中选项卡包含两个选项卡“ Sec A”和“ Sec B”。 在A节和B节下,我还有另一个分页器布局的片段,现在每个片段包含一周中的7天,以显示我们大学的课程表。

现在,问题出在应用程序首次启动时,如果我加载Sec A片段,那么它将很好地加载并填充7天的子片段,但是当我单击“ Sec B”选项卡...那么所有这7天尽管我对Sec A和B使用了相同的布局文件,数据库和适配器类,但Sec B的显示为白屏。

这是我整个项目https://github.com/BlueYeti1881/routine

的链接

我的项目文件结构是 enter image description here

我的片段片段是 enter image description here

第二个B片段是

enter image description here

我的Sec Fragment类是

 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相同,我的Adapter类为

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

0 个答案:

没有答案