实现弧形以及滑动放大效果RecyclerView,设计模式

作者: 新金沙平台  发布:2019-09-08

图片 1图片 2

最近在项目中遇到一个需求,就是点击选择按钮,弹出一个选择列表,并且可以实现多选的功能,现在我将这个功能写出来,让大伙瞧瞧,先上一个效果图(只看功能哈,其他的不是重点)

我们都知道RecyclerView可以通过将LayoutManager设置为StaggeredGridLayoutManager来实现瀑布流的效果。默认的还有LinearLayoutManager用于实现线性布局,GridLayoutManager用于实现网格布局。

责任链模式(Chain of Responsibility)是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。

图片 322.gif

然而RecyclerView可以做的不仅限于此,通过重写LayoutManager我们可以按自己的意愿实现更为复杂的效果。而且将控件与其显示效果解耦之后我们就可以动态的改变其显示效果。

责任链的定义有些抽象,其实就是使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系,将这些对象形成一条链,并沿着这条链传递该请求,直到有对象处理它为止。就像我们上学时在班级上传递小纸条一样,一个同学传递给另一个同学,如果是传给该同学的那么该同学接受,传递终止,否则传递给下一个同学。在这其中一个一个的同学组成一条链,在这条链上的每个同学都有可能接收纸条,如果一个同学要传递给下一个同学就要知道同学的名字。

效果就是这个效果,下面我们直接开始代码吧!

设想有这么一个界面,以列表形式展示了一系列的数据,点击一个按钮后以网格形势显示另一组数据。传统的做法可能是在同一布局下设置了一个listview和一个gridview然后通过按钮点击事件切换他们的visiblity属性。而如果使用recyclerview的话你只需通过setAdapter方法改变数据,setLayoutManager方法改变样式即可,这样不仅简化了布局也实现了逻辑上的简洁。

图片 4

1.数据实体类

下面我们就来介绍怎么通过重写一个LayoutManager来实现一个弧形的recycylerview以及另一个会随着滚动在指定位置缩放的recyclerview。并实现类似viewpager的回弹效果。

  • 多个对象能够处理同一请求,具体处理则在运行时动态确定
  • 在请求矗立着不明确的时候向多个对象提交同一个请求
  • 需要动态制定一组对象处理请求
 private String name; private String id; private boolean isChosed;//用来判断是否是选中的 public PopDataBean(String name, String id, boolean isChosed) { this.name = name; this.id = id; this.isChosed = isChosed; } public boolean isChosed() { return isChosed; } public void setChosed(boolean chosed) { isChosed = chosed; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; }

图片 5弧形 图片 6缩放

本文由新金沙平台发布于新金沙平台,转载请注明出处:实现弧形以及滑动放大效果RecyclerView,设计模式

关键词: 新金沙平台