Android 搞一搞上下拉刷新非对称瀑布流

      前言:

     这篇文章介绍一下,做的上下拉刷新的非对称瀑布流以及展示图片内容居中。可能大家对图片展示内容居中会突然想到imageview的属性scaleType="centerCrop"不就可以了吗,但是要想实现像淘宝那样的商品搜索展示非对称,图片长度不规则,但是网络图片的大小确实固定的情况下,怎么让图片的内容部分居中展示就是我接下来要介绍的.

    非对称view,我用了etsy实现的StaggeredGridView,这个view核心是继承AbsListView,这样不就是已经实现了嘛,对的,我们用StaggeredGridView来实现上下来刷新,套一下上下刷新的控件,我用了PullToRefreshview,继承PullToRefreshBase,泛型view就用StaggeredGridView。要实现图片高度不同,重写imageview,设置上高宽的比例,然后requestLayout让重写的imageview调用onMeasure重绘高度。在gradle中添加依赖 compile'com.etsy.android.grid:library:1.0.5'。

Android 搞一搞上下拉刷新非对称瀑布流_第1张图片
继承PullToRefreshview让StaggeredGridView实现上下拉刷新

需要注意的就是重写isReadyForPullStart和isReadyForPullEnd,滑动的时候判断是否是到头和底部了,代码中的判断逻辑比较简单就就不解释了。


Android 搞一搞上下拉刷新非对称瀑布流_第2张图片
判断滚动到头部底部方法

ok有了这个东西,我们就要开始在xml中引用

Android 搞一搞上下拉刷新非对称瀑布流_第3张图片
xml引用

    现在需要准备写适配器adapter了,想要实现图片的高度不规则,那么后台给我们的数据里面需要有图片的高宽值或者,高宽比例,我们使用的是高宽比例重绘onMeasure imageview高度,当然这个可以随意设置。

Android 搞一搞上下拉刷新非对称瀑布流_第4张图片
重写imageview高度可变

   丰富完适配器的内容,就可以看到效果了,adapter的东西就是很简单了,大家自行脑补吧,因为我项目的接口有验证,所以就不在demo里面放接口拉数据了,现在直接看下我在项目里面真正的显示操作效果吧。正好推广一下我正在做的app: 小红唇



项目效果

    ok,项目比较忙,语言组织写的不好还请见谅,希望对大家有一点点的促进。感谢大家的阅读,喜欢的请点个赞。如有不理解的地方,给我发信息即可。

你可能感兴趣的:(Android 搞一搞上下拉刷新非对称瀑布流)