一、简介
LeGalleryLikeHorizontalScrollview实现了滚动后使其中包含的childview居中的效果。该类会自动根据childview的宽度实现滚动后居中效果。
该类直接继承自android.widget.HorizontalScrollView.
二、效果和Demo
LeHorizontalScrollViewDemo(编译后push到 /system/app 下)
这里是多任务管理应用此控件的演示:
三、相关文件
/frameworks/base/core/leui/src/com/letv/leui/widget/LeGalleryLikeHorizontalScrollView.java
/frameworks/base/core/leui/src/com/letv/leui/widget/MotionHolder.java
/frameworks/base/core/leui/src/com/letv/leui/widget/TouchEventListener.java
四、使用说明
1.设置了滑动监听接口,调用public void setOnScrollListener(OnScrollListener onScrollListener)方法设置监听器。
2.可以调用public void flingToPage(int page)使控件快速滑动到某个childview,传入参数为childview的序号。
3.提供了让某个Item居中的接口setCenterPage
public void setCenterPage(int centerPage)
4.提供了初始化时预先偏置的接口
public void setNeedOffset(boolean needOffset)
五、新特性:两个view同步滑动
1、实现了同一组view根据同样的手势动作并结合自己item的宽度同步地滑动,最终停留在相同index的item处且居中显示。
2、使用注意
2.1、需要实现TouchEventListener接口,该接口作用有两个,一是登记需要同步滑动的LeGalleryLikeHorizontalScrollView对象,二是监听并分发某一个view上的手势事件到其他view,从而控制其他view同步地滑动。具体实现范例可以完全参照demo工程。
2.2、需要在初始化对象时,必须且只需将其中一个view设置成参照物,即设置public boolean isStandardView = true;具体例子参见Demo。