
本文实例讲述了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,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
//刷新右侧ListVIEwprivate 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编程实现仿美团或淘宝的多级分类菜单效果示例【附demo源码下载】全部内容,希望文章能够帮你解决Android编程实现仿美团或淘宝的多级分类菜单效果示例【附demo源码下载】所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)