相见恨晚的函数:setUserVisibleHint()实现 fragment 对用户可见时才加载资源(延迟加载)。
来源:互联网 发布:网络嗅探器使用教程 编辑:程序博客网 时间:2024/06/03 20:34
最近知道viewpager有缓存机制,但是我的fragment中有动画,一缓存切换时效果就没出,怎么办???
遇上这个问题我第一想到的是消除缓存,网上有很多资料,但最后试了都不是很理想。最后遇上一位大神,才知道有懒加载的方法。
1.首先写个lazyfragment作为基类
public abstract class LazyFragment extends Fragment { protected boolean isVisible; /** * 在这里实现Fragment数据的缓加载. * @param isVisibleToUser */ @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if(getUserVisibleHint()) { isVisible = true; onVisible(); } else { isVisible = false; onInvisible(); } } protected void onVisible(){ lazyLoad(); } protected abstract void lazyLoad(); protected void onInvisible(){}}2.在你需要延长的地方实现懒加载
public class MovieListFragment extends LazyFragment { private boolean isPrepared; private MovieAdapter adapter = null; private List<Movie> movieList; private ListView movieListView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.movie_list_fragment,null); movieListView = (ListView) v.findViewById(R.id.lv_movie); isPrepared = true; lazyLoad(); return v; } //懒加载 @Override protected void lazyLoad() { // TODO Auto-generated method stub if(!isPrepared || !isVisible) { return; } //填充各控件的数据 movieInit(); adapter = new MovieAdapter(getActivity(), R.layout.movie_item, movieList); movieListView.setAdapter(adapter); movieListView.setLayoutAnimation(new ListAnim().getListAnim()); }
0 0
- 相见恨晚的函数:setUserVisibleHint()实现 fragment 对用户可见时才加载资源(延迟加载)。
- ViewPager+Fragment setUserVisibleHint取消预加载(延迟加载)
- Fragment的setUserVisibleHint方法实现懒加载,但setUserVisibleHint 不起作用?
- Fragment的setUserVisibleHint方法实现懒加载
- Fragment的setUserVisibleHint方法实现懒加载
- Fragment的setUserVisibleHint方法实现懒加载
- Fragment的setUserVisibleHint方法实现懒加载
- Fragment的setUserVisibleHint方法实现懒加载
- Fragment的setUserVisibleHint方法实现懒加载
- Fragment的setUserVisibleHint方法实现懒加载
- Fragment的setUserVisibleHint方法实现懒加载
- Fragment的setUserVisibleHint方法实现懒加载
- Fragment的setUserVisibleHint方法实现懒加载
- Fragment的setUserVisibleHint方法实现延时加载
- Fragment的setUserVisibleHint方法实现懒加载
- Fragment的setUserVisibleHint方法实现懒加载
- Fragment的setUserVisibleHint方法实现懒加载
- Anddroid-使用Fragment的setUserVisibleHint方法实现延时加载
- Java解析Xml
- [剑指offer-1384] 二维数组中的查找
- java项目——Redis
- 大三寒假一记
- 将DataTable中多条记录的两列拼接显示
- 相见恨晚的函数:setUserVisibleHint()实现 fragment 对用户可见时才加载资源(延迟加载)。
- 并查集-POJ-1611-The Suspects
- LeetCode23. Merge k Sorted Lists!!!!!!
- RedWallet 微信抢红包 Wilson
- lintcode:Update Bits
- Android SDK HTTP Proxy Server
- ffmpeg入门(二)
- Python Shell 中IDLE清屏
- iOS应用架构谈