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,因为我们可以看到头条的每个碎片中的内容都是类似的,所以说动态创建也未尝不可,只有个别特殊的我们也可以特殊处理。
就这么简单就可以实现类似头条的页面滑动效果,
空调维修
- 我的世界电脑版运行身份怎么弄出来(我的世界
- 空调抽湿是什么意思,设置抽湿的温度有什么意
- 方太燃气灶有一个打不着火 怎么修复与排查方法
- 夏季免费清洗汽车空调的宣传口号
- 清洗完空调后出现漏水现象
- iphone6能玩什么游戏(iphone6游戏)
- 如何设置电脑密码锁屏(如何设置电脑密码锁屏
- win10删除开机密码提示不符合密码策略要求
- 电脑w7显示不是正版(w7不是正版怎么解决)
- 万家乐z8热水器显示e7解决 怎么修复与排查方法
- 1匹空调多少瓦数(1匹空调多少瓦)
- 安卓手机连接电脑用什么软件好(关于安卓手机
- 电脑网页看视频卡是什么原因(爱拍看视频卡)
- 华帝燃气灶点火器一直响然后熄火怎么办:问题
- 电脑壁纸怎么换(关于电脑壁纸怎么换的介绍)
- 冬天空调的出风口应该朝什么方向(冬天空调风