`

完整APP项目源码(含服务)-仿京东分类

阅读更多

完整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安卓源码下载

   

  

 

分享到:
评论

相关推荐

    android模仿京东app项目源码

    仿京东app 采用组件化架构 屏幕适配方案可以较好解决多分辨率及同分辨率不同dpi适配; 全新组件化架构升级,相比之前的方案模块间更为解耦且使用更为方便 本项目为仿京东项目,资源为抓包获取,项目框架采用路由框架...

    ionic3仿京东商城源码

    ionic3仿京东商城源码,非常好用的ionic3学习参考资料。

    仿京东app开发

    仿京东app框架,效果不错,源码可学习

    Andriod studio 3.5项目源码之仿头条App

    仿京东App 5.在线音乐播放器 6.仿哔哩哔哩B站 7.地图拖拽区域检测效果 8.手写签名 9.语音识别 10.自定义图形库 11.绘图框架:MPAndroidChart 12.高德地图导航 13.高德地图多路线规划 14.Meterail Design风格商城 ...

    基于微信小程序仿京东购物商城app设计(源码+数据库+运行截图+演示视频).zip

    基于微信小程序仿京东购物商城app设计(源码+数据库+运行截图+演示视频).zip 内容概要:实现了微信用户登录,商品关键字搜索,商品信息动态轮播,商品详情查看加入购物车,购物车商品增删改查,用户个人中心布局...

    基于nodejs+mysql实现的仿京东商城项目

    基于nodejs+mysql实现的仿京东商城app项目 前端 页面结构(H5,CSS3,原生JS) 框架(基于Vue脚手架:vue-cli)进行搭建 数据请求处理框架(Axios) Vue-Router进行路由处理 Vue-LazyLoad进行图片赖加载 服务端 选用NodeJs...

    android模仿京东app项目

    android模仿京东app项目源码仿京东app 采用组件化架构 屏幕适配方案可以较好解决多分辨率及同分辨率不同dpi适配; 全新组件化架构升级,相比之前的方案模块间更为解耦且使用更为方便 本项目为仿京东项目,资源为抓...

    ThinkPHP3.2仿京东商城视频教程实战课程,ThinkPHP3.2开发大型商城项目实战视频

    一、ThinkPHP3.2仿京东实战电子商城开发项目 第一天 1.项目说明 2.时间插件、XSS过滤、在线编辑器使用 3.商品的删除 4.商品的修改完成-一张表的操作全部完成 5.tp中使用AJAX提交表单 6.把模板套到项目中 7. 管理员的...

    CN5E-shop-master:商城类的应用

    项目已经做完,源码地址。 仿京东商城系列12------商品详细信息展示(nativie与html交互) 仿京东商城系列13------商品分享(shareSDK) 仿京东商城系列14------用户登录以及app登录拦截 仿京东长城系列15------用户...

    Andriod studio 3.5项目源码之天气应用

    仿京东App 5.在线音乐播放器 6.仿哔哩哔哩B站 7.地图拖拽区域检测效果 8.手写签名 9.语音识别 10.自定义图形库 11.绘图框架:MPAndroidChart 12.高德地图导航 13.高德地图多路线规划 14.Meterail Design风格商城 ...

    java源码 仿360buy京东商城源码 京东JavaWeb项目源代码.zip

    java源码 仿360buy京东商城源码 京东JavaWeb项目源代码.zip

    react-native-jd::fire:JD App build in React Native (Redux) (仿京东客户端)

    京东React Native App本项目基于Redux架构,模仿京东客户端的主要页面,对于学习React Native, Redux有比较好的借鉴意义,希望对大家有所帮助。项目长期维护,会利用业余时间完善,欢迎大家star,fork(ps: 开始准备...

    仿京东商城微信小程序,还原电商所有功能

    注: server是服务端源码 可自行下载部署 UI files . ├── README.md ├── app.js ├── app.json ├── app.wxss ├── components // 组件 │ ├── IOU // 白条组件 │ │ ├── iouCom....

    CcMall:商城项目开源

    感兴趣的可以下载APP看一下效果,APP下载地址: 基本主界面布局:RadioGroup+Fragment,使用show和hine实现隐藏和显示 标题头个根据滑动距离渐变,原理是改变透明度; 仿微信九宫格、查看大图、扫描二维码、Activity...

Global site tag (gtag.js) - Google Analytics