如题如图,利用ViewPager和WheelView实现横向滚动带动纵向数据列表发生变化。
横向滚动:ViewPager
关于ViewPager的使用,网上已经有较多的介绍,这里说一点,之前我想利用ViewPager实现无限循环,虽然功能实现了,但是无法获取到当前每个view的ID,无论通过setTag还是setId都无法准确获取到无限循环中的view,所以导致在上述代码实现过程中,使用的还是传统有限view,限制其范围。要实现横向滚动带动纵向滚动,只需要在当前view的切换事件中,调用wheelview的setItems方法即可。
public void onPageSelected(int position) {
wheelView.setOffset(1);
Random random = new Random();
switch (viewPager.findViewWithTag(position).getId()){
case R.id.view_one:
VIEWPAGERFLAG = "Tea";
bitmap_byte = BaseTools.bitmapTobyte(context,R.drawable.view_tea);
wheelView.clearWheelView();
wheelView.setItems(Arrays.asList(InitWheelData.Tea));
targer_infos = InitWheelData.Tea_infos[random.nextInt(InitWheelData.Tea_infos.length)];
break;
......
}
}
纵向列表滚动:WheelView
实现纵向列表滚动的方法较多,利用ListView也可以实现滚动事件,基于网上比较流行的WheelView控件,可以单独的设置选中突出式样,包括字体的大小,颜色等,具体代码见附件。
源码下载:https://download.csdn.net/download/xiaoxun2802/10518497