一、多图Item开发
1、在CourseAdapter中的getView()方法中添加一个CARD_MULTI_PIC的case分支,加载viewholder,并初始化viewholder
并根据item类型,将数据与item进行绑定。
注:动态创建imageview并动态添加到布局张红时,创建imageview,然后给imageview添加各种各样的属性。在添加属性时,使用LinearLayout.LayoutParams而不用ReleativeLayout.Params或者其它,是因为这个imageview最终要添加到LinearLayout这个布局中,
二、ViewPager列表项开发
1、思维导图
2、将二维数据转换为一维数据
下图的type3就对应了viewpager数据类型,title、price、info等中所有的数据都用@将数据拼接在了一起,这样就将二维数据转换为一维数据了,拿到这个jsonobject以后,通过分割就可以将合并起来的数据再拆开为一个list,然后用这个list再初始化这个viewpager
3、添加viewpager
加载viewpager,设置边距,并设置数据
拆分数据,初始化viewpager所需要的数据
加载图片到viewpager对应的位置上
4、实现viewpager无限循环
getCount()方法不再返回一个固定的值,而是返回无限大。然后再让数据重复出现就可以了。但是此时viewpager只能向同一个方向无限循环。通过mViewHolder.mViewPager.setCurrentItem(recommandList.size()*100)来将viewpager设置在一个比较中间的位置,从而实现viewpager的无限循环
让数据重复出现
再加上下面这句话就可以使viewpager向两个方向无限循环。就是一开始就让viewpager处于无限循环的中间部分
三、listview添加头布局的思维导图
注:listview在设置adapter的时候用的是setAdapter(),而在添加列表头的时候用的是addHeaderView(),这两个方法有什么本质的不一样呢?Android中以add开头的一般都是可以重复添加的,也就是说listview可以添加多个头部,在内部通过一个数组来维护所有的头部。包括尾部也是一样的。而使用set这个方法,那么就是要覆盖之前的值,也就是说它内部的值是唯一的。