我正面临一个奇怪的问题,对导致问题的原因一无所知。
我有一个Mainactivity与分页器布局,其中选项卡包含两个选项卡“ Sec A”和“ Sec B”。 在A节和B节下,我还有另一个分页器布局的片段,现在每个片段包含一周中的7天,以显示我们大学的课程表。
现在,问题出在应用程序首次启动时,如果我加载Sec A片段,那么它将很好地加载并填充7天的子片段,但是当我单击“ Sec B”选项卡...那么所有这7天尽管我对Sec A和B使用了相同的布局文件,数据库和适配器类,但Sec B的显示为白屏。
这是我整个项目https://github.com/BlueYeti1881/routine
的链接第二个B片段是
我的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);
}
}