完整APP项目(含服务器源码)第二课 - 仿京东商品分类
首先分京东商品分类的结构:左边是一级分类 , 右边是二级分类, 二级分类下是三级分类, 如下图:
分析结构如下:
昨天是个listview , 右边是一个GridView.
list实现是很常用的, 但是GridView分组目前Android SDK没有提供这个功能. 这里我们采用的是第三方库: StickyGridHeadersGridView 可以前往github下载.
部分代码片段 , main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@color/bg_activity"> <include layout="@layout/titlebar"/> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <ListView android:id="@+id/category_left_lstv" android:layout_width="match_parent" android:layout_height="fill_parent" android:layout_weight="3" android:choiceMode="singleChoice" android:divider="@color/separator_line" android:dividerHeight="1px" android:listSelector="#00000000" android:scrollbars="none" > </ListView> <com.tonicartos.widget.stickygridheaders.StickyGridHeadersGridView android:id="@+id/category_right_gdvv" android:layout_width="match_parent" android:layout_height="fill_parent" android:layout_marginLeft="@dimen/margin_space" android:layout_marginRight="@dimen/margin_space" android:layout_weight="1" android:numColumns="3" android:listSelector="@android:color/transparent" android:background="@color/bg_activity" android:scrollbars="none"/> </LinearLayout> </LinearLayout>
代码中使用StickyGridHeadersGridView
mLeftLstv = (ListView)view.findViewById(R.id.category_left_lstv); mRightGdv = (StickyGridHeadersGridView)view.findViewById(R.id.category_right_gdvv); mRightGdv.setAreHeadersSticky(false); //设置标题栏不随着列表滑动而滑动 mLeftAdapter = new SPCategoryLeftAdapter(getActivity()); mRightAdapter = new SPCategoryRightAdapter(getActivity()); mLeftLstv.setAdapter(mLeftAdapter); mRightGdv.setAdapter(mRightAdapter);
关键是Adapter的实现:
Adapter需要实现implements StickyGridHeadersSimpleAdapter接口, 并实现以下两个方法:
public long getHeaderId(int position)
标题ID , 如果该ID与上一ID不同就会调用的getHeaderView创建一个HeadView
public View getHeaderView(int position, View convertView, ViewGroup parent)
该函数返回一个HeadView布局文件.
@Override public long getHeaderId(int position) { SPCategory parentCategory = mCategoryLst.get(position).getParentCategory(); return parentCategory.getId() ; } @Override public View getHeaderView(int position, View convertView, ViewGroup parent) { HeaderViewHolder headerHolder; if (convertView == null) { headerHolder = new HeaderViewHolder(); convertView = LayoutInflater.from(mContext).inflate(R.layout.category_grid_title_item, parent, false); headerHolder.titleTxtv = (TextView) convertView.findViewById(R.id.catelogy_right_title_txtv); convertView.setTag(headerHolder); } else { headerHolder = (HeaderViewHolder) convertView.getTag(); } SPCategory parentCategory = mCategoryLst.get(position).getParentCategory(); headerHolder.titleTxtv.setText(parentCategory.getName()); return convertView; }
完整源码下载地址: demo tpshop安卓源码下载
相关推荐
仿京东app 采用组件化架构 屏幕适配方案可以较好解决多分辨率及同分辨率不同dpi适配; 全新组件化架构升级,相比之前的方案模块间更为解耦且使用更为方便 本项目为仿京东项目,资源为抓包获取,项目框架采用路由框架...
ionic3仿京东商城源码,非常好用的ionic3学习参考资料。
仿京东app框架,效果不错,源码可学习
仿京东App 5.在线音乐播放器 6.仿哔哩哔哩B站 7.地图拖拽区域检测效果 8.手写签名 9.语音识别 10.自定义图形库 11.绘图框架:MPAndroidChart 12.高德地图导航 13.高德地图多路线规划 14.Meterail Design风格商城 ...
基于微信小程序仿京东购物商城app设计(源码+数据库+运行截图+演示视频).zip 内容概要:实现了微信用户登录,商品关键字搜索,商品信息动态轮播,商品详情查看加入购物车,购物车商品增删改查,用户个人中心布局...
基于nodejs+mysql实现的仿京东商城app项目 前端 页面结构(H5,CSS3,原生JS) 框架(基于Vue脚手架:vue-cli)进行搭建 数据请求处理框架(Axios) Vue-Router进行路由处理 Vue-LazyLoad进行图片赖加载 服务端 选用NodeJs...
android模仿京东app项目源码仿京东app 采用组件化架构 屏幕适配方案可以较好解决多分辨率及同分辨率不同dpi适配; 全新组件化架构升级,相比之前的方案模块间更为解耦且使用更为方便 本项目为仿京东项目,资源为抓...
一、ThinkPHP3.2仿京东实战电子商城开发项目 第一天 1.项目说明 2.时间插件、XSS过滤、在线编辑器使用 3.商品的删除 4.商品的修改完成-一张表的操作全部完成 5.tp中使用AJAX提交表单 6.把模板套到项目中 7. 管理员的...
项目已经做完,源码地址。 仿京东商城系列12------商品详细信息展示(nativie与html交互) 仿京东商城系列13------商品分享(shareSDK) 仿京东商城系列14------用户登录以及app登录拦截 仿京东长城系列15------用户...
仿京东App 5.在线音乐播放器 6.仿哔哩哔哩B站 7.地图拖拽区域检测效果 8.手写签名 9.语音识别 10.自定义图形库 11.绘图框架:MPAndroidChart 12.高德地图导航 13.高德地图多路线规划 14.Meterail Design风格商城 ...
java源码 仿360buy京东商城源码 京东JavaWeb项目源代码.zip
京东React Native App本项目基于Redux架构,模仿京东客户端的主要页面,对于学习React Native, Redux有比较好的借鉴意义,希望对大家有所帮助。项目长期维护,会利用业余时间完善,欢迎大家star,fork(ps: 开始准备...
注: server是服务端源码 可自行下载部署 UI files . ├── README.md ├── app.js ├── app.json ├── app.wxss ├── components // 组件 │ ├── IOU // 白条组件 │ │ ├── iouCom....
感兴趣的可以下载APP看一下效果,APP下载地址: 基本主界面布局:RadioGroup+Fragment,使用show和hine实现隐藏和显示 标题头个根据滑动距离渐变,原理是改变透明度; 仿微信九宫格、查看大图、扫描二维码、Activity...