У меня есть RecyclerView
, который позволяет пользователю щелкнуть элемент и открыть элемент в ViewPager
, чтобы они могли легче просматривать элементы RecyclerView
. Мой вопрос: как я могу закрыть окно просмотра и вернуться к RecyclerView
без перезагрузки / изменения моего RecyclerView
?
Мой ViewHolder выглядит примерно так:
public class ItemViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public ItemViewHolder(View itemView) {
super(itemView);
}
// clicked item in recycler view
@Override
public void onClick(View view) {
SubmissionObj submissionObj = getItem(getLayoutPosition());
int curr = this.getLayoutPosition();
new Handler().post(new Runnable() {
@Override
public void run() {
mViewPager.setAdapter(new SubmissionsPagerAdapter(FragmentHome.this.getFragmentManager()));
mViewPager.setCurrentItem(curr);
}
});
}
}
И мой адаптер ViewPager:
private class SubmissionsPagerAdapter extends FragmentStatePagerAdapter {
public SubmissionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return FragmentFullDisplay.newInstance(SubredditContentRecyclerAdapter.this.getItem(position));
}
@Override
public int getCount() {
return Integer.MAX_VALUE; // todo: temporary debug value
}
}
Я попытался добавить следующее во фрагмент FragmentFullDisplay
, который используется для отображения элементов в ViewPager, но ничего не происходит (количество записей в backstack равно 0, поэтому я должен что-то неправильно понять):
private void closeFullDisplay() {
if (getActivity() != null) {
getActivity().getSupportFragmentManager().popBackStack();
}
}