今天介绍一个瀑布流控件:PinterestLikeAdapterVie
使用方法类似于ListView,下面是我使用该控件实现一个显示系统图片的简单应用:
xml中:
android:layout_width="match_parent"android:layout_height="match_parent"
android:background="#000000"
>
<com.huewu.pla.lib.multicolumnlistview< p="">
xmlns:pla="http://schemas.android.com/apk/res-auto"
android:background="#000000"
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
pla:plaColumnNumber="3"
pla:plaLandscapeColumnNumber="3"
>
plaColumnNumber表示显示多少列,plaLandscapeColumnNumber表示横屏下显示多少列。
但与StaggeredGridView 不同的是他没有提供设置item之间间隙大小的属性,这个可以通过在item的xml中设置一个padding来解决。
看看是不是打包错了?有些需要的类,不在library里,把你的common toolkit下了下来,里面有些可以配过去,有些又配不了.
分享是好的,但希望能检查一下是否能用再上传吧,谢谢
在RecyclerView中,我们可以通过LayoutManager控制其布局的显示方式,实现横向ListView、GridView、瀑布流等常见效果.
首先我们来看一看RecyclerView.LayoutManager的继承结构:
RecyclerView.LayoutManager是一个抽象类,其直接的实现类有LinearLayoutManager、StaggeredGridLayoutManager,而LinearLayoutManager也有一个子类GridLayoutManager.
1)通过LinearLayoutManager:我们可以实现横向、纵向的列表效果
2)通过GridLayoutManager:我们可以实现像GridView一样的网格布局
3)通过StaggeredGridLayoutManager:我们可以实现瀑布流的效果
纵向ListView效果
item的布局中TextView的android:layout_width,android:layout_height对调
ok,就是这么简单,看一下效果图
是不是很简单!!!
item的布局:
效果图:
关于分隔线的原理在 RecyclerView系列之二:添加分隔线 中已经介绍了,今天这里介绍GridLayoutManager的分隔线.
先上效果图:
Activity中:
如果仅仅是把layoutManager 改变为StaggeredGridLayoutManager,item的高度还是固定一样的话,效果和网格布局就一样了
要实现瀑布流的效果,每个item的高度当然要不一样了
这里需要注意的是,虽然是随机高度,但是不要直接在onBindViewHolder设置随机高度,像下面这样:
因为在复用时会调用onBindViewHolder()方法填充数据,如果在这里重新给item设置高度,会出现滑动过程中item高度一直变换、item还会交换位置的问题.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)