android微信下拉出现小程序,Android仿微信首页下拉显示小程序列表
花点时间重新熟悉一下AndroidUI方面的东西,把古董PullToRefreshView又撸了一遍,技术这种东西真是忘得快啊...在基础上新增一点东西,粗糙地实现了仿微信首页下拉显示小程序列表的样式,是的,粗糙粗糙...
PullToRefreshView原始的实现思路:
1.垂直方向的LinearLayout由三部分组成Header+ScrollableContent+Footer。
2.在加载XML前addview(Header),并且设置Header的marginTop=-Header高度,即Header并隐藏在屏幕上方。
3.在加载完XML后onFinishInflate()内addView(Footer),只要content高度是全屏,footer就会被挤到屏幕下方隐藏。
4.在事件拦截方法中判断是否拦截,两种情况:
(1)向下拉动&content与屏幕顶部相切(中间内容滑到头了还想滑)
(2)向上滑动&content与底部相切(滑到低了还向上滑)
5.在事件处理方法中处理拦截的事件,PRV下拉上滑是通过设置Header的marginTop值来实现的,
对于4(1),计算滑动距离设置margin值,将marginTop拉出,全显示时状态标记为松开即刷新。
对于4(2),将margin值继续负增长,则footer自然被引出,全显示时标记可加载。
6.数据加载完后取消动画及重新隐藏布局。
搞清楚这些再想如何粗糙实现仿微信就简单了:
1.在Header内头部添加小程序列表布局,下拉到一定距离就能看到
2.适当的状态下全显Header,设Header高度H
(1)原来松开刷新的区域1/2H~2/3H,超过2/3H状态改为松开查看小程序
(2)嗯
3.拦截事件中多处一个上滑推起小程序的判断
。。
写得很粗糙,就当是自己的笔记吧
源码:.git
android微信下拉出现小程序,Android仿微信首页下拉显示小程序列表
花点时间重新熟悉一下AndroidUI方面的东西,把古董PullToRefreshView又撸了一遍,技术这种东西真是忘得快啊...在基础上新增一点东西,粗糙地实现了仿微信首页下拉显示小程序列表的样式,是的,粗糙粗糙...
PullToRefreshView原始的实现思路:
1.垂直方向的LinearLayout由三部分组成Header+ScrollableContent+Footer。
2.在加载XML前addview(Header),并且设置Header的marginTop=-Header高度,即Header并隐藏在屏幕上方。
3.在加载完XML后onFinishInflate()内addView(Footer),只要content高度是全屏,footer就会被挤到屏幕下方隐藏。
4.在事件拦截方法中判断是否拦截,两种情况:
(1)向下拉动&content与屏幕顶部相切(中间内容滑到头了还想滑)
(2)向上滑动&content与底部相切(滑到低了还向上滑)
5.在事件处理方法中处理拦截的事件,PRV下拉上滑是通过设置Header的marginTop值来实现的,
对于4(1),计算滑动距离设置margin值,将marginTop拉出,全显示时状态标记为松开即刷新。
对于4(2),将margin值继续负增长,则footer自然被引出,全显示时标记可加载。
6.数据加载完后取消动画及重新隐藏布局。
搞清楚这些再想如何粗糙实现仿微信就简单了:
1.在Header内头部添加小程序列表布局,下拉到一定距离就能看到
2.适当的状态下全显Header,设Header高度H
(1)原来松开刷新的区域1/2H~2/3H,超过2/3H状态改为松开查看小程序
(2)嗯
3.拦截事件中多处一个上滑推起小程序的判断
。。
写得很粗糙,就当是自己的笔记吧
源码:.git