BrighterLi / BaoEmall

宝电子商城

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

1、 整体架构
用FragmentTabHost实现底部菜单
ToolBar的基本使用
自定义ToolBar

2、 首页
1 用FragmentTabHost实现底部菜单
  (1) FragmentTabHost的用法
    1) Activity 要继承FragmentActivity
    2) 调用setup()方法
    3) 添加TabSpec
  (2) Selector背景选择器
      图标按下和未按下的显示效果不一样
  (3) 底部菜单的几种实现方式
      TabHost + Activity(比较老)
      RationButton + Fragment(代码量较大)
      FragmentTabHost + Fragment
      LinearLayout + TextView
      LinearLayout+TextView+红点(RelativeLayout) (建议使用这种方式)
  2 ToolBar的使用
       https://www.jianshu.com/p/05ef48b777cc
       ActionBar的升级版,比较灵活,不像ActionBar那么固定。
       Toolbar是一个ViewGroup,用来做App的标题栏,主要有5部分,导航Button、logo、正副标题、自定义View以及action menu。
    通过xml文件属性可以设置导航Button、logo和正副标题,通过代码设置action menu,利用自定义View可以解决标题不居中的问题。
       这里使用Toolbar有什么用,我自己写一个RelativeLayout或者其他什么布局都能实现,为啥非要用Toolbar呢?这里说一下,使用Toolbar比起传统的自定义布局的好处。
    第一、不需要考虑标题栏和系统状态栏匹配的问题,你自己写还得匹配系统状态栏;第二、就是Toolbar可以和其他的MD设计风格的空间连用,做出比较炫的效果,
    比如Toolbar+NestScrollView,Toolbar+DrawerLayout + NavigationView等等;第三、谷歌推荐的控件。
    (1)ToolBar的基本使用
    (2)ToolBar自定义

    3 主页Tab—自动轮播广告AndroidImageSlider
      https://github.com/daimajia/AndroidImageSlider
      (1)基本使用
      (2)事件监听
      (3)架构分析

    4 主页Tab—RecyclerView
    (1) RecyclerView是什么?
    RecyclerView是一种新的视图组,目标是为任何基于适配器的视图提供相似的渲染方式。它被作为ListView和GridView控件的升级版,在最新的support-V7版本中提供支持。
    整体上看RecyclerView架构,提供了一种更精美的体验,高度的适应力,异常的灵活,通过设置它提供的不同LayoutManager,ItemDecoration , ItemAnimator实现很多炫酷的效果。
    (2)事件监听
    自己定义
    (3)数据增删
    (4)动画

    5 主页Tab—首页商品分类
    (1) CardView
    CardView适用于实现卡片式布局效果的重要控件,由appcompat-v7库提供,实际上CardView也是一个FrameLayout,只是额外提供了圆角和阴影效果,看上去有立体的感觉。一般CardView都用在ListView的item布局中。

    6 OkHttp
    (1) Android中网络请求的进化
    HttpURLConnection —> Http Client(Apache ) —> Volley —> OkHttp
    (2)OkHttp
    Http Get
    OkHttpClient:客户端对象
    Request:OkHttp中的访问的请求
    Builder:辅助类
    Response:OkHttp中的响应
    Http Post(JSON)
    MediaType:数据类型
    RequestBody:请求数据

    7 OkHttp的简单封装
    get,post
    request
    callback

   8 主页Tab—主页商品分类重构

   9 Fresco(FaceBook)
   (1) Fresco介绍
   图片加载组件,图片下载和内存管理,图片显示
   (2)Fresco使用
   基本使用;渐进式加载图片;多图加载;事件监听

   10 下拉刷新SwipeRefreshLayout控件
    可以用于RecyclerView,ListView,GridView
    不支持上拉加载

   11热卖Tab—热门商品列表实现(下拉刷新,下拉加载)
   下拉刷新/下拉加载控件:MaterialRefreshLayout

   12 Adapter封装
   (1)假如有很多个RecyclerView,没必要每次把所有的方法写一遍,可以进行Adapter的封装。
   (2)封装方法
   1)数据使用泛型
   2)数据绑定通过实现抽象方法来实现
   3)ViewHolder中的View成员变量转而通过view数组来实现
   4)基类里面提供常用的方法

   13 商品分类Tab— 一级商品分类实现
   RecyclerView

   14 商品分类Tab— 二级商品列表实现
    RecyclerView

  15 购物车-自定义控件
   自定义数字加减控件:
   1)输入框只能是数字,且不能通过键盘输入
   2)通过加减按钮操作数字
   3)监听加减按钮
   4)数字有最小值和最大值区别
   5)自定义属性

  16 购物车-数据
  (1)购物车数据存储器
  1)数据存储在本地(用什么方式存储?为什么要存储)
  2)提供put、update、delete、getAll方法
  3)put数据时如购物车中存在相同的产品数量加1
  (2)SharedPreference
  要存储在本地,具体的数据可以转成json存在SharedPreference;不用本地数据库,是因为数据量不大

  17 购物车Tab—商品显示
   RecyclerView

  18 购物车Tab—商品选择
  RecyclerView—Adapter—data

  19 购物车Tab—购物车编辑实现

  20 分页工具类封装
  (1) 封装原则
  1)公共的东西抽出来
  2)变化的东西有调入者传入
  3)提供简洁的API

  21 商品列表
  点击首页商品进入商品列表页

  22商品列表—列表网格切换

  23 native与h5交互
  (1)Android与H5交互两种情况
  1)Android调用h5
  2)h5调用Android
  (2)步骤
  1)设置允许执行Js脚本
  webSettings.setJavaScriptEnabled(true);
  2)添加通信接口
  webView.addjavascriptInterface(Interface, "InterfaceName");
  3)JS调用Android
  InterfaceName.MethodName
  4)Android调用JS
  webView.loadUrl("javascript:functionName()");
  (3)loadUrl
  1)本包内部asset目录
  webView.loadUrl("file:///android_asset/index.html");
  2)本地sd卡内
  webView.loadUrl("content://com.android.htmlfileprovider/sdcard/index.html");
  3)指定URL的html文件
  webView.loadUrl("http://www.baidu.com");

  24 使用h5实现商品图文详情页面
  Android与h5交互

  25 商品分享
  分享功能
  mob.com

  26 用户登录
   密码加密 des
   服务器返回token+用户信息
  27 api权限
  token保护api,token验证成功后才会返回api数据
  401:token丢失;402:token错误;403:token过期
  28 APP登录拦截
    跳转过程中判断是否登录

  29 短信sdk集成
  用户注册
  30 获取短信验证
  短信验证码sdk文档
  请求,回调

  31 支付sdk
  支付宝,微信支付,百度钱包(公司才可以申请)
  第三方聚合:ping++(公司才可以申请);Bmob(个人可申请,不专业)
  服务端集成
  ping++集成:https://github.com/PingPlusPlus/pingpp-android/tree/master
  https://www.pingxx.com/docs/client/android.html
  32 提交订单
  33 支付

  34 添加收货地址
  地址:三级联动
  35 收件地址

  36我的

  37我的订单

  38 我的收藏

  39 完结
  动手做项目
  不会到会,勇敢面对困难
  一个知识点一个知识点学习,弄透,输出












About

宝电子商城


Languages

Language:Java 100.0%