全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android编程实现仿美团或淘宝的多级分类菜单效果示例【附demo源码下载】

本文实例讲述了Android编程实现仿美团或淘宝的多级分类菜单效果。分享给大家供大家参考,具体如下:

这里要实现的是诸如美团/淘宝/百度糯米 多级分类菜单效果。当分类数量非常多时可以考虑采用两级分类,而诸如美团这种表现方式是一个不错的选择。

首先上效果图:

 

主要代码:

1. PopupWindow初始化过程:

popupWindow = new PopupWindow(this);
View view = LayoutInflater.from(this).inflate(R.layout.popup_layout, null);
leftLV = (ListView) view.findViewById(R.id.pop_listview_left);
rightLV = (ListView) view.findViewById(R.id.pop_listview_right);
popupWindow.setContentView(view);
popupWindow.setBackgroundDrawable(new PaintDrawable());
popupWindow.setFocusable(true);
popupWindow.setHeight(ScreenUtils.getScreenH(this) * 2 / 3);
popupWindow.setWidth(ScreenUtils.getScreenW(this));
popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
  @Override
  public void onDismiss() {
    darkView.startAnimation(animOut);
    darkView.setVisibility(View.GONE);
    leftLV.setSelection(0);
    rightLV.setSelection(0);
  }
});

2.左侧菜单点击事件:

//左侧ListView点击事件
leftLV.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  @Override
  public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    //二级数据
    List<SecondClassItem> list2 = firstList.get(position).getSecondList();
    //如果没有二级类,则直接跳转
    if (list2 == null || list2.size() == 0) {
      popupWindow.dismiss();
      int firstId = firstList.get(position).getId();
      String selectedName = firstList.get(position).getName();
      handleResult(firstId, -1, selectedName);
      return;
    }
    FirstClassAdapter adapter = (FirstClassAdapter) (parent.getAdapter());
    //如果上次点击的就是这一个item,则不进行任何操作
    if (adapter.getSelectedPosition() == position){
      return;
    }
    //根据左侧一级分类选中情况,更新背景色
    adapter.setSelectedPosition(position);
    adapter.notifyDataSetChanged();
    //显示右侧二级分类
    updateSecondListView(list2, secondAdapter);
  }
});

3. 右侧菜单点击事件:

//右侧ListView点击事件
rightLV.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  @Override
  public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    //关闭popupWindow,显示用户选择的分类
    popupWindow.dismiss();
    int firstPosition = firstAdapter.getSelectedPosition();
    int firstId = firstList.get(firstPosition).getId();
    int secondId = firstList.get(firstPosition).getSecondList().get(position).getId();
    String selectedName = firstList.get(firstPosition).getSecondList().get(position)
        .getName();
    handleResult(firstId, secondId, selectedName);
  }
});

4.顶部标签点击事件(即显示/隐藏 分类菜单)

if (popupWindow.isShowing()) {
  popupWindow.dismiss();
} else {
  popupWindow.showAsDropDown(findViewById(R.id.main_div_line));
  popupWindow.setAnimationStyle(-1);
  //背景变暗
  darkView.startAnimation(animIn);
  darkView.setVisibility(View.VISIBLE);
}

5.根据左侧点击,刷新右侧ListView

//刷新右侧ListView
private void updateSecondListView(List<SecondClassItem> list2,
    SecondClassAdapter secondAdapter) {
    secondList.clear();
    secondList.addAll(list2);
    secondAdapter.notifyDataSetChanged();
}

完整实例代码点击此处本站下载

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android布局layout技巧总结》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android操作json格式数据技巧总结》、《Android资源操作技巧汇总》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。


# Android  # 仿美团  # 淘宝  # 多级分类菜单  # Android自定义StepView仿外卖配送进度  # Android仿外卖购物车功能  # Android仿百度外卖自定义下拉刷新效果  # Android仿美团下拉菜单(商品选购)实例代码  # Android仿美团分类下拉菜单实例代码  # Android仿美团淘宝实现多级下拉列表菜单功能  # Android模仿美团顶部的滑动菜单实例代码  # 模仿美团点评的Android应用中价格和购买栏悬浮固定的效果  # Android使用RecyclerView仿美团分类界面  # Android仿美团外卖菜单界面  # 的是  # 是一个  # 进阶  # 操作技巧  # 这一  # 相关内容  # 感兴趣  # 给大家  # 如果没有  # 点击此处  # 跳转  # 更多关于  # 所述  # 两级  # 程序设计  # 背景色  # 变暗  # 讲述了  # setHeight 


相关文章: 七夕网站制作视频,七夕大促活动怎么报名?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  小建面朝正北,A点实际方位是否存在偏差?  建站之星如何修改网站生成路径?  如何在阿里云服务器自主搭建网站?  如何通过wdcp面板快速创建网站?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  建站之星后台管理如何实现高效配置?  如何确保FTP站点访问权限与数据传输安全?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  学校免费自助建站系统:智能生成+拖拽设计+多端适配  建站主机选虚拟主机还是云服务器更好?  如何在阿里云完成域名注册与建站?  如何在香港服务器上快速搭建免备案网站?  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?  南平网站制作公司,2025年南平市事业单位报名时间?  制作农业网站的软件,比较好的农业网站推荐一下?  青岛网站建设如何选择本地服务器?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  如何用5美元大硬盘VPS安全高效搭建个人网站?  h5网站制作工具有哪些,h5页面制作工具有哪些?  如何通过智能用户系统一键生成高效建站方案?  红河网站制作公司,红河事业单位身份证如何上传?  如何制作算命网站,怎么注册算命网站?  做企业网站制作流程,企业网站制作基本流程有哪些?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  想学网站制作怎么学,建立一个网站要花费多少?  如何用西部建站助手快速创建专业网站?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  如何快速完成中国万网建站详细流程?  如何通过建站之星自助学习解决操作问题?  建站主机默认首页配置指南:核心功能与访问路径优化  个人摄影网站制作流程,摄影爱好者都去什么网站?  香港服务器部署网站为何提示未备案?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  如何选择高效可靠的多用户建站源码资源?  网站制作企业,网站的banner和导航栏是指什么?  网站设计制作企业有哪些,抖音官网主页怎么设置?  北京网站制作的公司有哪些,北京白云观官方网站?  如何用低价快速搭建高质量网站?  建站之星如何快速更换网站模板?  如何用虚拟主机快速搭建网站?详细步骤解析  如何高效配置IIS服务器搭建网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。