ListBuddies: 双列循环滚动的 ListView

作者: rain 分类: 移动 发布时间: 2014-03-12 18:38 6 条评论

ListBuddies 是一个实现双列循环滚动的 ListView 的类库,类似于 Expedia 应用主页效果。 也可以下载示例程序查看效果。

如何使用:

和使用 ListView 一样在布局文件中添加自定义的 View:

下面包含了所有可以自定义的属性

也可以在 Java 代码中添加 View,

支持的属性:

  • speed: 设置自动滚动的速度 (int). 0 –  表示不自动滚动
  • gap: 列之间的间隔,默认值为 3dp (@dimen/default_margin_between_lists).
  • gapColor: 设置间隔的颜色,默认值为 透明的
  • listDivider: 定义 lists dividers.
  • listsDividerHeight: Divider 的高度
  • autoScrollFaster: 设置自动滚动时,那边滚动的快一点,取值为:right/left.
  • scrollFaster: 设置手动滚动时,那边滚动的快一点,取值为: right/left.

该自定义 View 中包含了两个 ListView ,所以需要使用 listBuddies.setAdapters(adapter1,adapter2) 来设置两个 adapter。例如:

两个 adapter 都需要继承自 CircularLoopAdapter ,该类和 BaseAdapter 有两点区别:

1. 使用 getCircularCount 来代替 BaseAdapter 中的 getCount 函数

2. 使用 getCircularPosition(position) 来获取点击 View 的位置。

通过

函数来设置点击事件。该回调接口参数中多了一个 buddy 参数用来表明点击的是左边 还是右边的 ListView 。

如果要想实现 点击每个 Item 的点击效果,则每个 Item 需要继承如下类:

com.jpardogo.listbuddies.lib.views.containers.FrameLayoutFeedback

com.jpardogo.listbuddies.lib.views.containers.RelativeLayoutFeedBack

com.jpardogo.listbuddies.lib.views.containers.LinearLayoutFeedBack

这些类有个 selectorColor 属性设置点击的效果。

 

当然,你也可以自定义自己的 View 来实现点击效果。

 

本文出自 云在千峰,转载时请注明出处及相应链接。

本文永久链接: http://blog.chengyunfeng.com/?p=573

Ɣ回顶部