0

I have a ViewPager inside a Fragment

public class FragmentPager extends BaseFragment {

    @Bind(R.id.viewpager)
    ViewPager viewPager;
    @Bind(R.id.detail_tabs)
    TabLayout detailTabs;

    private Activity mActivity;
    private PagerAdapter mPagerAdapter;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setHasOptionsMenu(true);
        mPagerAdapter = new PagerAdapter(getChildFragmentManager());
    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_pager, container, false);

        ButterKnife.bind(this, v);

        viewPager.setAdapter(mPagerAdapter);
        final int pageMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, getResources()
                .getDisplayMetrics());
        viewPager.setPageMargin(pageMargin);
        detailTabs.setupWithViewPager(viewPager);


        return v;
    }

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        mActivity = activity;
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        ButterKnife.unbind(this);
    }
}

I am already using FragmentStatePagerAdapter to manage my fragments in ViewPager. Each Fragment has a RecyclerView. On clicking each item of the RecyclerView I am replacing the FragmentPager with FragmentDetail. When I navigate back to the FragmentPager, the RecyclerView starts from the beginning instead of position scrolled.

mihirjoshi
  • 12,161
  • 7
  • 47
  • 78

1 Answers1

0

I think you change your fragment with fragmentTransaction replace method. You need to do it with fragmentTransaction add method. See the below

Basic difference between add() and replace() method of Fragment

Community
  • 1
  • 1
Tiko
  • 851
  • 8
  • 15