// create boolean for fetching data private boolean isViewShown = false; @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (getView() != null) { isViewShown = true; // fetchdata() contains logic to show data when page is selected mostly asynctask to fill the data fetchData(); } else { isViewShown = false; } }
Use the isViewShown instance variable to decide whether to retrieve data in onCreateView() or in setUserVisibleHint() .
The code below contains the logic for onCreateView() :
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.main_layout, container, false);
This code will solve your problem. Since he solved my problem. :)
This trick will retrieve data in onCreateView() to directly jump from one page to another, while when scrolling through the view, it will retrieve data from setUserVisibleHint() . :)
vikoo Jul 24 '14 at 13:02 2014-07-24 13:02
source share