!!之前代码有问题,左边Listview项滚出屏幕后位置不对,没有联动,重新改了下,https://github.com/wpq2014/MyDemo

相关文章:http://www.jianshu.com/p/afb8ff16701e

最近做项目时想把店铺内菜单展示做成百度外卖、美团外卖和淘点点的样子,网上没找到完美的Demo,所以只能自己瞎搞了;从Libraries for developers上找了个PinnedHeaderListView作为菜单展示页(即右半部分),左边店内分类用普通ListView就行(左半部分),主要方法就两个:

1. 左边ListView的setOnItemClickListener,点击左边分类时右边对应分类滚动到顶部(到底则停止滚动)

left_listView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View view, int position,long arg3) {isScroll = false;for (int i = 0; i < left_listView.getChildCount(); i++){if (i == position){left_listView.getChildAt(i).setBackgroundColor(Color.rgb(255, 255, 255));} else{left_listView.getChildAt(i).setBackgroundColor(Color.TRANSPARENT);}}int rightSection = 0;for(int i=0;i<position;i++){rightSection += sectionedAdapter.getCountForSection(i)+1;}right_listview.setSelection(rightSection);}});

2. 右边PinnedHeaderListView的setOnScrollListener,右边菜单上下滚动时左边对应分类滚动到对应位置

right_listview.setOnScrollListener(new OnScrollListener() {@Overridepublic void onScrollStateChanged(AbsListView arg0, int arg1) {}@Overridepublic void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) {if(isScroll){for (int i = 0; i < left_listView.getChildCount(); i++){if (i == sectionedAdapter.getSectionForPosition(firstVisibleItem)){left_listView.getChildAt(i).setBackgroundColor(Color.rgb(255, 255, 255));} else{left_listView.getChildAt(i).setBackgroundColor(Color.TRANSPARENT);}}}else{isScroll = true;}}});

还有一个比较重要的是右边PinnedHeaderListView的Adapter,具体内容可以下载源码自己研究改动

public class TestSectionedAdapter extends SectionedBaseAdapter {private Context mContext;private String[] leftStr;private String[][] rightStr;public TestSectionedAdapter(Context context, String[] leftStr, String[][] rightStr){this.mContext = context;this.leftStr = leftStr;this.rightStr = rightStr;}@Overridepublic Object getItem(int section, int position) {return rightStr[section][position];}@Overridepublic long getItemId(int section, int position) {return position;}@Overridepublic int getSectionCount() {return leftStr.length;}@Overridepublic int getCountForSection(int section) {return rightStr[section].length;}@Overridepublic View getItemView(final int section, final int position, View convertView, ViewGroup parent) {LinearLayout layout = null;if (convertView == null) {LayoutInflater inflator = (LayoutInflater) parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);layout = (LinearLayout) inflator.inflate(R.layout.list_item, null);} else {layout = (LinearLayout) convertView;}((TextView) layout.findViewById(R.id.textItem)).setText(rightStr[section][position]);layout.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {Toast.makeText(mContext, rightStr[section][position], Toast.LENGTH_SHORT).show();}});return layout;}@Overridepublic View getSectionHeaderView(int section, View convertView, ViewGroup parent) {LinearLayout layout = null;if (convertView == null) {LayoutInflater inflator = (LayoutInflater) parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);layout = (LinearLayout) inflator.inflate(R.layout.header_item, null);} else {layout = (LinearLayout) convertView;}layout.setClickable(false);((TextView) layout.findViewById(R.id.textItem)).setText(leftStr[section]);return layout;}}

我的效果图:

                     奉上源码

仿百度外卖、美团外卖、淘点点等左右联动ListView菜单展示相关推荐

  1. 饿了么、百度、 美团外卖系统网上订餐

    "饿了么"是中国知名的在线外卖订餐平台,已覆盖中国数百个城市,数千万用户,聚集了数十万家餐饮商户."饿了么"为中国广泛地区的用户提供丰富多样.简单快捷的在线订餐 ...

  2. listview下拉刷新上拉加载扩展(三)-仿最新版美团外卖

    本篇是基于上篇listview下拉刷新上拉加载扩展(二)-仿美团外卖改造而来,主要调整了headview的布局,并加了两个背景动画,看似高大上,其实很简单: as源码地址:http://downloa ...

  3. Android:高仿百度外卖、美团、淘点点二级联动效果!

    美团,百度外卖的左右二级联动效果如下: 具体的效果建议打开手机软件玩玩. 分析 首先我们一起分析一下这个界面给我们要怎么去实现. 1.最上面的ToolBar不用多解释,比较简单. 2.下面三个界面切换 ...

  4. 仿饿了么、百度、美团外卖,订餐网站外卖系统

    网上订餐不仅得到了用户们的亲睐,更是餐馆们创收的绝佳选择.餐饮企业普遍面临竞争压力加剧.人力成本.租金成本上涨等问题,而网上订餐平台正好解决这些餐饮企业的烦恼. 相关数据显示预计到2015年中国餐饮O ...

  5. 网上订餐系统饿了么、百度、美团外卖,订餐网站外卖

    网上订餐系统 网上订餐系统立足于餐饮领域,以推动和加快餐饮行业信息化建设,为餐饮业主.网站平台服务运营商提供一流的应用软件及信息化全面解决方案为使命.对中小型餐饮企业推出的一款融合网络订餐.3G网络及 ...

  6. 饿了么、百度、美团外卖,网上订餐成为白领用餐的新趋势

    高新科技和计算机的飞速发展,给人们带来了更多的便利.电脑普及时代到来,网络技术也在逐渐完善,人们的生活已经开始发生重要的变革.人们通过网络就可以完成生活中必要的事情,比如说,吃饭.随着越来越多的人接受 ...

  7. 仿百度糯米/美团二级菜单

    好久没有打开我的CSDN博客了,也是因为年龄一年年大了,生活压力大了,思考的事情已经不在项目上了,最近看见有人给我csdn上留言,说我好久没有更新CSDN了,我刚好最近在开发一个商城项目,实现了一个简 ...

  8. 进云仿美团外卖平台 v1.39源码

    简介: 进云仿美团外卖源码是一个进云源生插件,支持多商户+多样化配送费模式+本土外卖平台+支持第三方配送,运行需要进云框架支撑! 特点: 1.多样化配送费模式: 2.板块-绑定商户分类机制: 3.板块 ...

  9. Android Studio初学者实例:Fragment学习--仿美团外卖界面

    本次课程为Fragment为主题,课程的示例仿美团外卖界面,不同于底部导航栏的Fragment案例,此界面分为左侧切换与顶部切换.本文先是发布代码与效果,后续讲解将会在后续补充.先看看效果: 首先是布 ...

最新文章

  1. [推荐推荐][提供下载]ORACLE SQL:经典查询练手系列文章收尾(目录篇)
  2. 实时摄像头数据传输丢包问题
  3. 神策 2021 数据驱动大会,科特勒、桑文锋等发出营销未来之强音
  4. RouterOS V2.9.27 固定IP双电信分流教程(详)
  5. 腾讯的迷你门户首页新闻用到的Silverlight技术引用
  6. C语言中数组所占字节怎么算
  7. MySQL的安全设定
  8. Java多线程详解(线程池)
  9. AcWing 874. 筛法求欧拉函数(欧拉函数)
  10. sap 供应商表_汐帆科技告诉你SAP 为何是企业最优先的选择?
  11. LOJ#6038. 「雅礼集训 2017 Day5」远行(LCT)
  12. vue路由守卫、vue-ajax请求
  13. 黄金分割法求解局部最小值——python实现
  14. springMVC 415 错误
  15. 对于路由地址并未切换,但是地址栏发生地址发生变化原因
  16. 阿里开发者工具盘点:用它!让开发事半功倍
  17. GOOGLE地图基站定位-Google Mobile Maps API
  18. Ubuntu 22.04 无法使用网易云音乐
  19. android官方上拉加载,Android-RecycleView上拉加载更多
  20. 我的计算机-软件开发之路(1)

热门文章

  1. Powerpivot PowerBI相关组件下载安装(附操作截图)
  2. 免费的天气查询 API 接口分享
  3. php必须安装什么才能运行,运行php需要什么?
  4. selenium学习之安全微伴自动完成
  5. 基于FPGA的HDB3编译码verilog实现,结合MATLAB进行辅助验证
  6. langtj牌子的机械键盘关闭闪光灯
  7. 小敏利用计算机设计了一个计算程序,七年级上期中练习卷2013-2014第一学期定稿(10页)-原创力文档...
  8. python123创意绘画_Turtle 创意绘画
  9. 计算机专业用苹果哪款笔记本,最好的苹果笔记本电脑是哪款
  10. 三代开源社区的协作模式