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

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

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

本文实例讲述了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源码下载】所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1147077.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存