我有一个由问题的arraylist支持的FragmentStatePagerAdapter。当问题得到解答时,它们将被删除。一切都很好,但我想在问题完成时显示不同的信息。有没有办法在FragmentStatePagerAdapter中执行此操作?
提前谢谢!
答案 0 :(得分:0)
看起来很简单。如果列表为空,请确保getCount()
始终返回1,如果问题列表为空,则显示空片段。请在删除问题后致电notifyDatasetChanged()
。
class QuestionsAdapter extends FragmentStatePagerAdapter {
private final List<Question> mQuestionsList;
QuestionsAdapter(FragmentManager fm, List<Question> questionsList) {
super(fm);
mQuestionsList = new ArrayList<>(questionsList);
}
@Override
public Fragment getItem(int i) {
if (mQuestionsList.isEmpty()) {
// Return your special Fragment if the list is empty
return EmptyQuestionsFragment.newInstance();
} else {
// Otherwise, business as usual
return QuestionsFragment.newInstance(mQuestionsList.get(i));
}
}
@Override
public int getCount() {
// Always return 1 item, even if the list is empty.
return Math.max(1, mQuestionsList.size());
}
}