I have an Activity with 2 fragments, which I want to refresh by the click of a button that resides on the ActionBar Toolbar.
I know there are many answers to this questions on stackoverflow which I have tried and which doesn't exactly solve my issue or looked quite complex for me to implement.
I tried using
ViewGroup parent = (ViewGroup) viewPager.getParent();
if (parent != null) {
            parent.removeView(viewPager);
}
to remove viewpager and when refresh button clicked, It didnt work.
I tried notifyDataChanged(); , It didn't work as well.
This is my Activity, FragmentPagerAdapter code below.
public class MainActivity extends AppCompatActivity implements android.view.View.OnClickListener{
    private Toolbar toolbar;
    int firstrun = 0;
    ViewPager viewPager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
        // Set a Toolbar to replace the ActionBar.
        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        viewPager = (ViewPager) findViewById(R.id.viewpager);
        if (viewPager != null) {
            setupViewPager(viewPager, 0);
            viewPager.setOffscreenPageLimit(1);
        }
        SlidingTabLayout mTabs = (SlidingTabLayout) findViewById(R.id.tabs);
        mTabs.setDistributeEvenly(true);
        // Setting Custom Color for the Scroll bar indicator of the Tab View
        mTabs.setCustomTabColorizer(new SlidingTabLayout.TabColorizer() {
            @Override
            public int getIndicatorColor(int position) {
                return getResources().getColor(R.color.tabsScrollColor);
            }
        });
        mTabs.setViewPager(viewPager);
        /** buttons at toolbar, that would trigger the refresh **/
        ImageView A = (ImageView) findViewById(R.id.refresh);
        A.setOnClickListener(this);
    }
    public void onClick(View v){
        if(v.getId() == R.id.refresh ){
            viewPager = (ViewPager) findViewById(R.id.viewpager);
            if (viewPager != null) {
                setupViewPager(viewPager, 1);  // Setting to 1 or 0 
                viewPager.setOffscreenPageLimit(2);
            }
            Toast.makeText(MainActivity.this, "Refreshing...", Toast.LENGTH_SHORT).show();
        }
    }
    private void setupViewPager(ViewPager viewPager, int num) {
        Adapter adapter = new Adapter(getSupportFragmentManager());
        adapter.addFragment(new TabOneFragment(), "TAB 1");
        adapter.addFragment(new TabTwoFragment(), "TAB 2");
        // I tried this , It didn't work.
        /*ViewGroup parent = (ViewGroup) viewPager.getParent();
        if (parent != null) {
            parent.removeView(viewPager);
        }*/
        if(num==0) {
            viewPager.setAdapter(adapter);
        }else{
            // I tried this, It didn't work as well
            viewPager.getAdapter().notifyDataSetChanged();
        }
    }
    // My Fragment Pager Adapter static class
    static class Adapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragments = new ArrayList<>();
        private final List<String> mFragmentTitles = new ArrayList<>();
        public Adapter(FragmentManager fm) {
            super(fm);
        }
        public void addFragment(Fragment fragment, String title) {
            mFragments.add(fragment);
            mFragmentTitles.add(title);
        }
        @Override
        public Fragment getItem(int position) {
            return mFragments.get(position);
        }
        @Override
        public int getCount() {
            return mFragments.size();
        }
        @Override
        public CharSequence getPageTitle(int position) {
            return mFragmentTitles.get(position);
        }
        @Override
        public void destroyItem(View collection, int position, Object view) {
            ((ViewPager) collection).removeView((View) view);
        }
    }
}
This is my fragment code below.
public class TabOneFragment extends Fragment {
    private int mPage;
    private RecyclerView view;
    private View mview;
    public static TabOneFragment newInstance(int page) {
        Bundle args = new Bundle();
        args.putInt(ARG_PAGE, page);
        TabOneFragment fragment = new TabOneFragment();
        fragment.setArguments(args);
        return fragment;
    }
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //mPage = getArguments().getInt(ARG_PAGE);
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
            View mview = inflater.inflate(R.layout.fragment_all_tabs, container, false);
            view = (RecyclerView) mview.findViewById(R.id.homelistrecyclerview);
        RestAdapter restAdapter = new RestAdapter.Builder().
                setEndpoint(Info.getEndpoint()).build();
        MovieApi mApi = restAdapter.create(MovieApi.class);
        mApi.getTabOneContent(new Callback<Info>() {
            @Override
            public void success(Info info, Response response) {
                Info example = info;
                view.setLayoutManager(new LinearLayoutManager(view.getContext()));
                view.setAdapter(new ListingAdapter(getActivity(),
                        example.getMovies(), tabId, Info.getSchedule(), example.getShowtime()));
            }
            @Override
            public void failure(RetrofitError error) {
                //Toast.makeText(getActivity(), error.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
                //Log.d("RetrofitError: ", error.getLocalizedMessage());
            }
        });
        return view;
    }
Layout Below.
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:card_view="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/homelistrecyclerview"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
</LinearLayout>
 
    