我通过覆盖getItemOffsets()方法使用GridLayoutManager将相等的边距应用于我的RecyclerView(请参阅下面的代码).

但是,从适配器中删除对象时,将调用删除动画而不使用偏移.因此,anmiation开始于与要移除的对象不同的位置.

我尝试通过getSpanIndex(position)获取位置,但位置(parent.getChildAdapterPosition(view))返回NO_POSITION,因为当调用getItemOffsets()时,对象已从适配器中删除.

有没有办法在我的情况下得到抵消?

@Override

public void getItemOffsets(Rect outRect, View view,

RecyclerView parent, RecyclerView.State state) {

GridLayoutManager mgr = parent.getLayoutManager();

int position = parent.getChildAdapterPosition(view);

if (position == RecyclerView.NO_POSITION) {

// here I need to access the position of the current element

// and call outRect.set(left, top , right, bottom);

// which is not possible because it is no longer in the adapter

return;

}

int spanCount = mgr.getSpanCount();

int spanSize = mgr.getSpanSizeLookup().getSpanSize(position);

int spanIndex = mgr.getSpanSizeLookup().getSpanIndex(position, spanCount);

if (spanIndex == spanCount-1) {

// last element

left = space / 2;

right = space;

} else if (spanIndex == 0) {

// first element

left = space;

right = space / 2;

} else {

// middle element

left = space / 2;

right = space / 2;

}

outRect.set(left, top, right, bottom);

}

android getitem,android – ItemDecoration重写getItemOffsets()和动画相关推荐

  1. android getitem,android中Baseadapter的 getItem 跟 getItemId 的作用和重写

    android中Baseadapter的 getItem 和 getItemId 的作用和重写 重写Baseadapter时,我们知道需要重写以下四个方法:getCount,getItem(int p ...

  2. android getitem,Android类BaseAdapter中getItem和getItemId方法的意图是什么?

    getItem或getItemId是主要设计用于附加列表中的项目数据的方法.在getItem的情况下,您可以传递将附加到列表中的项目的任何对象.通常人们会返回null. getItemId是您可以使用 ...

  3. android重写item,android-在RecyclerView.Adap中重写notifyItemChanged的动画

    android-在RecyclerView.Adap中重写notifyItemChanged的动画 好吧,我有一个带适配器的RecyclerView,一切正常. ArrayList数据集中的项目会定期 ...

  4. android 头部分割线,ItemDecoration实践之分割线与粘性头部

    RecyclerView提供了良好的设计,将各部分功能的实现都拆解开,方便自定义,虽然加大了使用难度,但是却大大的增加了可扩展性,稍微会使用之后,扩展起来非常的舒心. 功能:适用于以下几种布局的分割线 ...

  5. Android仿网易游戏的精美开场动画+动画基础详解

    可以看到现在不少app都加入了开场动画,效果还是挺不错的,今天我就在这分享一下仿网易游戏的开场动画制作,同时我也在文章中加入了Android动画基础的详解,接下来就进入主题吧. 首先是布局文件: &l ...

  6. Android中使用SVG实现炫酷动画效果

    前言 SVG,即Scalable Vector Graphics 可伸缩矢量图形.这种图像格式在前端中已经使用的非常广泛,而在移动端的开发中,遇到一些复杂的自定义控件或者动画效果,我们就可以考虑使用S ...

  7. Android仿小红书启动页平行动画

    实现效果 需要注意的: view.setTag()和view.getTag() View中的setTag(Object)表示给View添加一个格外的数据,以后可以用getTag()将这个数据取出来. ...

  8. android切换页面上滑动动画,Android ViewPager多页面滑动切换以及动画效果

    评论 #28楼[楼主] 2012-06-01 14:27D.Winter @孤寒江雪 我猜 要么在头尾各再加入一个页卡 在页卡切换监听中判断,如果选中了头尾的页卡,就返回到相邻的那个页卡.头尾页卡的界 ...

  9. android 中间按钮突出,Android 实现 按钮从两边移到中间动画效果

    Android 实现 按钮从两边移到中间动画效果html package org.shuxiang.test; import android.app.Activity; import android. ...

最新文章

  1. 利用js对页面数据进行排序
  2. php是范例,php基础范例
  3. 从零开始,带你玩转一站式实时数仓Hologres
  4. NOIp 2014 #5 解方程 Label:数论?
  5. brpc访问MySQL_怎么使用Swoft 搭建微服务(TCP RPC)PHP中高级进阶
  6. Autodesk 3DSMax 2012 安装说明
  7. 华南理工计算机电路基础试题,华南理工计算机电路基础模拟考试题
  8. 数学建模入门-matlab实现偏微分方程数值解
  9. 谷歌AI版“你画我猜”刷屏朋友圈 背后是这样的原理!
  10. aspUpload有组件上传文件
  11. JDK8 Windows系统中Java HotSpot虚拟机配置参数
  12. 阳明心学解析——心学本质关系连接
  13. 校园网状态下通过智能插座为ipad实现远程智能充电
  14. Java动态代理的原理
  15. 英雄榜再添豪杰!分享喜悦与荣誉
  16. 《TCP IP网络编程》阅读笔记及部分《图解 TCPIP》《图解 HTTP》补充笔记
  17. 上海大学计算机学院邢稹,【CES·毕业季】学霸寝室||相约一起“上岸”,我们是最亲密的战友!...
  18. 真材实料才是底气!华为某大佬从不加班,下班后不接电话,只因技术太牛,领导毫无办法!...
  19. Python画图-中使用plt生成的图的legend,设置字体大小
  20. 九州贯连:智能体重秤为什么卖得贵,是因为考研英语二会考嘛?

热门文章

  1. 问题解决——使用CriticalSection后 0xXXXXXXXX处最可能的异常: 0xC0000005: 写入位置 0x00000014 时发生访问冲突
  2. JavaWeb 项目安全问题及其解决方案
  3. 基于spring boot的统一异常处理
  4. 记一次前端问题解决历程(Cannot read Property ‘call‘ of undefined)
  5. 关于mybatis的xml文件中使用 >= 或者 <= 号报错的解决方案
  6. Java泛型-为什么允许“扩展T”但不允许“实现T”?
  7. 解释Python的‘__enter __‘和‘__exit__‘
  8. 如何使用npm重新安装应用程序的依赖项?
  9. 从HTML页面重定向
  10. centos7 搭建FastDFS服务器