本文实例讲述了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小时内与您取得联系。