效果分析 Android APP采用底部tab切换效果越来越多,像微信,QQ, 支付宝等巨型APP都是采用这种设计。我们今天要介绍的就是基于这样的设计的一种内存优化方案 - ViewPager延迟加载。先看看微信的效果吧。 滑动过程中看到的是正在加载...,等切换完成才会开始加载页面内容。 android ViewPager默认加载当前页面的前一张和后一张,一般情况下会初始化三个界面,先不考虑三个页面同时加载导致的线程网络阻塞的问题,用户打开app并不需要马上初始化不可见的页面,这部分内存是可以优化的,可见的时候才开始加载内容,这样尽量减少内存的占用。 原理分析和实现效果 我们采用ViewPager + FragmentPagerAdapter来实现底部Tag切换的效果,要实现微信这种效果首先需要在不可见时文本占位提示正在加载..., 其次需要获取到当前页面可见与不可见的事件监听。在可见的时候加载内容。这两条都可以通过重写ViewPager来实现,但是比较麻烦,有兴趣的朋友可以去尝试下。我们这里介绍一种更简单的方案,通过重写Fragment的setUserVisibleHint方法来实现。 我们来看看setUserVisibleHint方法官网文档 setUserVisibleHint() Set a hint to the system about whether this
ViewPager
标签: ViewPager
ViewPager滑动最右继续滑动跳转
看代码吧,废话不多说了,关键方法是onPageScrollStateChanged() public class GuideActivity extends BaseActivity implements ViewPager.OnPageChangeListener { private ViewPager viewPager; private CircleIndicator circleIndicator; private GuideAdapter adapter; private boolean misScrolled; private int position = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURENOTITLE); setContentView(R.layout.activityguide); viewPager = findView(R.id.container); viewPager.addOnPageChangeListener(