Fragment和Viewpager都可以用于在一个Activity下切换页面,并且 Fragment和Viewpager经常搭配使用。
经常会有下图所示的需要
两个按钮对应两个页面,点击不同的条目显示不同的内容,那么在这种情况下我们如何选择使用Fragment还是ViewPager呢?
我们先来分析下怎么分别实现这种需求。
1.ViewPager
为ViewPager设置Adapter,根据position加载不同的布局,设置不同的数据。点击不同的按钮时设置对应的ViewPager页码。
2.Fragment
使用FragmentManager,点击不同的按钮时替换成不同的Fragment
毫无疑问,使用Fragment使得代码更清晰,各自的页面的布局和数据由各自的Fragment来管理。ViewPager需要根据判断position来加载不同的布局,设置不同的数据,使得代码比较混乱。但凡这类页面都是请求网络数据,但Fragment在不做处理时每次替换都会重新加载数据,耗费流量,并且用户加载过的页面切换回来还会加载,用户体验不好,当然是可以处理的,处理的方法请自行Google或者百度。ViewPager自身就带有缓存处理,两个页面的情况下不会有页面被销毁,流畅度更高,并且可以处理切换时的动画,在这方面ViewPager更胜一筹。
所以对于这种简单的我更倾向于使用ViewPager来实现,但是如果展示的东西较多,需要处理的逻辑较复杂,那么我建议使用Fragment来实现。