仿美团外卖,饿了吗 两个ListView联动,左边点击切换右边,右边滑动切换左边

仿美团外卖,饿了吗 两个ListView联动,左边点击切换右边,右边滑动切换左边

实现思路:

1.先说右边标题:

首先,右边的数据源集合中的Javabean中含有三个属性name,type,title,而每个条目中会默认含有一个标题.

如果这是第一个条目,就让标题显示出来,再如果这个条目的类型和上一个条目的类型不一样,就让这个条目的标题显示出来,否则,就隐藏标题,  这样我们就做到了每种类型只有第一个数据标题显示出来

接着,在Listview的外层(也就是MainActivity的布局文件中),默认放一个标题(下面都称作是主标题)

最后,设置右边Listview的滚动监听事件    在onScroll方法中,我们要做两件事:

     第一件事是每当前第一个可见条目的类型和当前左边Listview选择的类型(红色字体的类型) 不一样时,需要将主标题的内容改变

     第二件事  同时切换左边Listview的选中状态

2.再说左边的Listview

左边的Listview需要设置条目点击事件,在点击事件中需要干三件事:

第一  将左边点击条目的字体颜色改变

第二   将右边Listview滚动至左边Listview所选择类型相同的区域

第三  改变主标题的内容


说到这,大家可能还是云里雾里的,还是不知道左边的类型和右边的类型是怎么关联起来的?没关系,在下面的代码解析中你就会明白!下边是具体的实现步骤:

一.写布局

1.在MainActivity的布局文件中    添加应有的控件

1 <span><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="horizontal" 6 tools:context=".MainActivity" > 7 8 <ListView 9 android:id="@+id/lv_left" 10 android:layout_width="0dp" 11 android:layout_height="match_parent" 12 android:layout_weight="1" > 13 </ListView> 14 15 <RelativeLayout 16 android:layout_width="0dp" 17 android:layout_height="match_parent" 18 android:layout_weight="3" > 19 20 <ListView 21 android:id="@+id/lv_Right" 22 android:layout_width="match_parent" 23 android:layout_height="match_parent" > 24 </ListView> 25 26 <TextView 27 android:id="@+id/tv_title" 28 android:layout_width="match_parent" 29 android:layout_height="wrap_content" 30 android:background="#9f9f9f" 31 android:gravity="center" 32 android:padding="5dp" 33 android:textColor="#000000" 34 android:textSize="18sp" /> 35 </RelativeLayout> 36 37 </LinearLayout></span>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzwyyg.html