RecyclerView--更强大的滚动控件2

        前面我们学习了RecyclerView的基本用法,现在来学习一下它附带的另外一种内置的布局排列方式:StaggeredGridLayoutManager可以实现瀑布流布局。首先在RecyclerViewTest2的基础上,修改player_item.xml如下:


这里做了几个调整,首相把LinearLayout的宽度有100dp改成match_parent,因为瀑布流布局的效果宽度应该根据布局的列数来自动分配,而不是固定的值。另外我们使用了layout_margin="5dp" 来让子项的之间有一点间距。接下来就是修改一下MainActivity中的代码:


这里的蓝色代码和行,代表我们创建了一个瀑布流布局的实例,3代表把布局分成3列,后面的参数用来指定布局的排列方向,表示纵向排列。




这里,我们首先定义了一个方法,通过Random来获取1~20个随机数,然后将参数中传入的值重复随机随机数的变数,最后形成瀑布流的效果。运行结果如下:





到此,我们实现了RecyclerView的两种布局方式,接下来我们来响应点击事件。我们需要自己给子项具体的View去注册点击事件。在ListView中,我们可以通过setOnItemClickListener去注册监听方法,但是当我们要想点击子项里面具体的某一项时,这个方法就不管用了,所以我们给子项具体的View去注册点击事件更好一些。接下来修改PlayerAdapter中的代码,如下:





首先在ViewHolder中添加了playerView变量来保存子项最外层布局的实例,然后在onCreateViewHolder()方法中注册点击事件就可以了。我们在两个点击事件中先获取了用户点击的position,然后通过position拿到响应的player实例,最后使用Toast分别弹出两种不同的内容以示区别。运行程序,结果如下:



这回,我们点击某个事件,就在屏幕上弹出了提示,响应了我们点击的事件。






























































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值