Android仿今日头条滑动页面导航效果
家电修理 2023-07-16 19:16www.caominkang.com电器维修
最近项目中用到了滑动页面,也就是和目前市场上很火的"今日头条"页面滑动类似,在网上找了一下,大部分都是用ViePager来实现的,刚开始我用的是ViePager+VieGroup,上面的标题按钮用的是HorizontalScrollVie,写完之后感觉效果比较生硬,果断换掉,发现了一个效果比较好的第三方,也就是今天的主题:PagerSlidingTabStrip.好了,下面来具体介绍一下PagerSlidingTabStrip,进行一下源码解析.
一、看一下demo的样子吧
二、把PagerSlidingTabStrip导入我们的项目中
然后在我们的布局文件中进行声明:
<.hankkin.PagerSlidingTabStrip.vie.PagerSlidingTabStrip android:id="@+id/tab" app:pstsShouldExpand="false" app:pstsUnderlineHeight="2dp" app:pstsIndicatorHeight="2dp" app:pstsIndicatorColor="@android:color/holo_blue_light" app:selectedTabTextColor="@android:color/holo_blue_light" app:pstsDividerColor="@android:color/transparent" app:pstsTabBackground="@draable/background" android:background="@android:color/hite" android:layout_idth="match_parent" android:layout_height="55dp"/>
上面的也就是我们的标题滑动按钮,下面的ViePager用来存放我们的内容
三、创建Adapter
package .hankkin.PagerSlidingTabStrip.adapter; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import .hankkin.PagerSlidingTabStrip.fragment.AndroidFragment; import .hankkin.PagerSlidingTabStrip.fragment.JavaFragment; import .hankkin.PagerSlidingTabStrip.fragment.ObjectCFragment; import java.util.List; public class MyAdapter extends FragmentPagerAdapter { private AndroidFragment androidFragment; private JavaFragment javaFragment; private ObjectCFragment objectCFragment; private String[] titles; public MyAdapter(FragmentManager fm,String[] titles) { super(fm); this.titles = titles; } @Override public Fragment getItem(int position) { sitch (position) { case 0: if (androidFragment == null) { androidFragment = ne AndroidFragment(); } return androidFragment; case 1: if (javaFragment == null) { javaFragment = ne JavaFragment(); } return javaFragment; case 2: if (objectCFragment == null) { objectCFragment = ne ObjectCFragment(); } return objectCFragment; default: return null; } } @Override public int getCount() { return titles.length; } public String getPageTitle(int i){ return titles[i]; } }
我这里用的是碎片Fragment,最下面的getPageTitle()是我们的PagerSlidingTabStrip中的方法,用来获取标题
接下来我们初始化PagerSlidingTabStrip和ViePager还有我们的碎片
private void initVies(){ fragments = ne ArrayList<>(); pagerTab = (PagerSlidingTabStrip) findVieById(R.id.tab); pager = (ViePager) findVieById(R.id.pager); for (int i=0;i在Adapter中利用碎片管理器获取我们的碎片和标题相对应上.这里面需要注意提一下,如果碎片的个数比较少我们可以手动创建碎片,如果像今日头条很多的话也没关系,动态创建Fragment,因为我们可以看到头条的每个碎片中的内容都是类似的,所以说动态创建也未尝不可,只有个别特殊的我们也可以特殊处理。
就这么简单就可以实现类似头条的页面滑动效果,
空调维修
- 温岭冰箱全国统一服务热线-全国统一人工【7X2
- 荆州速热热水器维修(荆州热水器维修)
- 昆山热水器故障码5ER-昆山热水器故障码26
- 温岭洗衣机24小时服务电话—(7X24小时)登记报
- 统帅热水器售后维修服务电话—— (7X24小时)登
- 阳江中央空调统一电话热线-阳江空调官方售后电
- 乌鲁木齐阳春燃气灶厂家服务热线
- 珠海许昌集成灶售后服务电话-全国统一人工【
- 乌鲁木齐中央空调维修服务专线-乌鲁木齐中央空
- 新沂热水器故障电话码维修-新沂热水器常见故障
- 诸城壁挂炉24小时服务热线电话
- 靖江空调24小时服务电话-——售后维修中心电话
- 空调室外滴水管维修(空调室外排水管维修)
- 九江壁挂炉400全国服务电话-(7X24小时)登记报修
- 热水器故障码f.22怎么解决-热水器f0故障解决方法
- 营口热水器售后维修服务电话—— 全国统一人工