带货直播系统源码中,商品详情页是如何搭建起来的
时间:2022-07-22
本文章向大家介绍带货直播系统源码中,商品详情页是如何搭建起来的,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
市面上大多数带货直播系统源码的商品介绍详情页,都是仿照淘宝的商品详情页的制作的,那么这个模块是如何通过代码建立起来的呢?下面小编将会通过代码来描述其实现过程。
1. 实现滑动控制到导航栏的显示和隐藏
mScrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
@Override
public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
float alpha=(float)scrollY/(float)300; //aplpha值控制范围在0-300
ViewUtil.setAlpha(mVTab,alpha); //设置导航栏的透明度
public static void setAlpha(View view,float alpha) {
if(view==null||view.getAlpha()==alpha){
return;
}
if(alpha>1){ //大于1过滤
alpha=1F;
}
view.setAlpha(alpha);
}
2. 实现点击导航栏切换到对应的模块
private void checkDffect(int item) { //item 0,1,2,3 分别对应的4个模块
if(mCurrentItem==item){
return;
selectTabLine(item);
switch (item){
case 0:
scroll(mPannelViewProxy);
break;
case 1:
scroll(mGoodsEvaluateViewProxy);
break;
case 2:
scroll(mGoodsRecommendViewProxy);
break;
case 3:
scroll(mGoodsWebViewProxy);
private void scroll(final BaseGoodItemViewProxy goodItemViewProxy) {//goodItemViewProxy是view的管理器
if(mScrollView!=null&&goodItemViewProxy!=null&&goodItemViewProxy.getTop()!=-1){
mScrollView.post(new Runnable() { //通过post方法延迟执行
@Override
public void run() {
mScrollView.scrollTo(0,goodItemViewProxy.getTop());//传入view的top
}
});
}else {
DebugUtil.sendException("scroll报错了");
}
}
3. 手指滑动页面,tab自动切换到对应的显示位置
mScrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
@Override
public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
if(mPannelViewProxy!=null){
if(mPannelViewProxy.isScrollTop(scrollY)){ //每一个view都去监听scrollview的滚动位置
selectTabLine(0);
if(mPannelViewProxy.getOffectTabHeight()==0){
//将tab栏高度传入,加入偏移量,目的是控制view滑动到tab栏正下面属于复合条件
mPannelViewProxy.setOffectTabHeight(mVTab.getHeight());
}
}
}
public boolean isScrollTop(int dy){
boolean isUp=lastScroolDy-dy>0;//是否是上滑
dy=dy+mOffectTabHeight; //加入偏移量
if(mContentView!=null){
mTop=mContentView.getTop(); //
mBottom=mContentView.getBottom();
/*因为onScrollChange不是绝对实时的,并不能精确控制到没有误差,所以加入30上下到允许值*/
if(Math.abs((dy-mTop))<30){ //当滑动到view顶部的时候
return true;
}else if(isUp&&Math.abs((dy-mBottom))<30){//当向上滑到view的底部的时候,也应该切换到对应的栏目
return true;
}
}
lastScroolDy=dy; //记录上一次滑动的值
return false;
}
以上就是带货直播系统源码中,商品介绍详情页是被如何搭建起来的。
声明:以上内容为作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任。
- Metaball(元球)效果学习
- ASP.NET MVC 4 RC的JS/CSS打包压缩功能
- 表格可在线编辑效果
- CSS侧边栏宽度不动(更改页面宽度时),内容区宽度自适应
- JS网页顶部弹出可关闭广告图层
- 未来会不会出现人类大脑与人工智能进行链接,而产生的超级大脑?
- android布局文件中android:icon="?attr/menuIconCamera"找不到对应图标路径
- 无限级分类(非递归算法/存储过程版/GUID主键)完整数据库示例_(1)表结构
- Centos7修改默认网卡名(改为eth0)以及网卡启动报错RTNETLINK answers: File exists处理
- 通过企业分布式缓存共享运行时数据
- 移植SlidingMenu Android library,和安装example出现的问题解决
- 无限级分类(非递归算法/存储过程版/GUID主键)完整数据库示例_(2)插入记录
- Centos中yum方式安装java
- 微信小程序新革命催生新物种新物种带来大红利!玩转行业新玩法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- VBA解析VBAProject 04——run length encoding
- TRTC Android端开发接入学习之实现语音聊天室(九)
- VBA解析VBAProject 03——解析dir流
- VBA解析VBAProject 01——实现的功能
- VBA解析VBAProject 02——解析
- 光怪陆离的世界之Delaunay三角剖分和Voronoi图
- Angular里的routerLink不能按照期望工作的一个问题
- 哈希算法在判定树同构方面的应用(上)
- 为啥会内存泄漏?一个免费的检测工具来了
- iOS开关按钮,纯CSS给你安排上了
- 面试官:你说说互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景
- 一次“内存泄露”引发的血案
- 一次压缩引发堆外内存过高的教训
- 第2章代码-图形系统
- 第3章代码-光栅化与裁剪