// 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;
}
}
使用isViewShown实例变量来决定要在中onCreateView()还是在中获取数据setUserVisibleHint()。
下面的代码包含以下逻辑onCreateView():
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.main_layout, container, false);
// view initialization steps.......
if (!isViewShown) {
fetchData();
}
// do other stuff
}
此代码将解决您的问题。因为它解决了我的问题。:)
这个技巧将获取数据,onCreateView()以便直接从一页跳转到另一页,而当您滑动视图时,它将从setUserVisibleHint()方法中获取数据。:)