// 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()方法中获取数据。:)
本文介绍了一种策略,通过使用isViewShown实例变量来决定是在onCreateView()还是在setUserVisibleHint()中获取数据。这种方法确保了当页面直接跳转时立即加载数据,并在用户滑动视图时利用setUserVisibleHint()异步填充数据,从而提升应用性能和用户体验。
2014

被折叠的 条评论
为什么被折叠?



