android吸顶布局(动态添加和移除view)
参考文章[五种方式实现Android吸顶效果]( https://www.jianshu.com/p/23b8820f1549我的效果吸顶关键点:根据滑动距离动态改变tabLayout的父容器根据滑动距离动态改变悬浮tab的背景色锚点切换关键点参考另一篇文章android锚点优化关键点代码:if (y >= headerH) {//滑动的距离大于头部布局的高度,...
·
我的效果
吸顶关键点:
- 根据滑动距离动态改变tabLayout的父容器
- 根据滑动距离动态改变悬浮tab的背景色
- 锚点切换关键点参考另一篇文章android锚点优化
关键点代码:
if (y >= headerH) {
//滑动的距离大于头部布局的高度,切换tabLayout的父布局为scrollview外部的tab容器
if (frame_dynamic_view.getParent() != ll_out_bar) {
ll_inside_bar.removeView(frame_dynamic_view);
ll_out_bar.addView(frame_dynamic_view);
ll_out_bar.setBackgroundColor(getResources().getColor(R.color.white));
}
} else {
//滑动的距离小于头部布局的高度,切换tabLayout的父布局为scrollview内部的tab容器
if (frame_dynamic_view.getParent() != ll_inside_bar) {
ll_out_bar.removeView(frame_dynamic_view);
ll_inside_bar.addView(frame_dynamic_view);
ll_out_bar.setBackgroundColor(getResources().getColor(android.R.color.transparent));
}
}
if (isScroll) {
//关键点2:由scrollView引起的滑动后移动tabLayout高亮显示指定的tab
if (y +tabH < ll_second.getTop()) {
setScrollPos(0);
} else if (y +tabH >= ll_second.getTop() && y + tabH< ll_third.getTop()) {
setScrollPos(1);
} else if (y + tabH>= ll_third.getTop()) {
setScrollPos(2);
}
}
更多推荐
已为社区贡献7条内容
所有评论(0)