在上一篇文章 Android 实现锚点定位中,我们介绍了tablayout+scrollView实现的锚点定位,今天我们使用tablayout+recyclerView 来实现同样的效果。
效果图:

实现思路
>注‘Android技术交流群878873098,欢迎大家加入交流,畅谈!本群有免费学习资料视频’并且免费分享源码解析视频
实现的思路与上一篇文章是一致的:
1、监听recyclerView滑动到的位置,tablayout切换到对应标签
2、tablayout各标签点击,recyclerView可滑动到对应区域
数据模拟
数据模拟,使用上一文章的AnchorView作为recyclerView的每个字view,同时这里对recyclerView的最后一个子view的高度进行修改,让其充满屏幕。
private LinearLayoutManager manager;
private String[] tabTxt = {"客厅", "卧室", "餐厅", "书房", "阳台", "儿童房"};
//判读是否是recyclerView主动引起的滑动,true- 是,false- 否,由tablayout引起的
private boolean isRecyclerScroll;
//记录上一次位置,防止在同一内容块里滑动 重复定位到tablayout
private int lastPos;
//用于recyclerView滑动到指定的位置
private boolean canScroll;
private int scrollToPosition;
//tablayout设置标签
for (int i = 0; i < tabTxt.length; i++) {
tabLayout.addTab(tabLayout.newTab().setText(tabTxt[i]));
}
//计算内容块所在的高度,全屏高度-状态栏高度-tablayout的高度(这里固定高度50dp),用于recyclerView的最后一个item view填充高度
int screenH = getScreenHeight();
int statusBarH = getStatusBarHeight(this);
int tabH&

本文介绍了如何使用Android的TabLayout+RecyclerView实现锚点定位效果。通过监听滑动位置、处理标签点击事件,以及模拟数据和设置布局,详细阐述了实现思路和具体步骤。文中提供详细代码,并邀请读者加入技术交流群获取学习资源。
最低0.47元/天 解锁文章
2362

被折叠的 条评论
为什么被折叠?



