android getitem,android – ItemDecoration重写getItemOffsets()和动画
我通过覆盖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()和动画相关推荐
- android getitem,android中Baseadapter的 getItem 跟 getItemId 的作用和重写
android中Baseadapter的 getItem 和 getItemId 的作用和重写 重写Baseadapter时,我们知道需要重写以下四个方法:getCount,getItem(int p ...
- android getitem,Android类BaseAdapter中getItem和getItemId方法的意图是什么?
getItem或getItemId是主要设计用于附加列表中的项目数据的方法.在getItem的情况下,您可以传递将附加到列表中的项目的任何对象.通常人们会返回null. getItemId是您可以使用 ...
- android重写item,android-在RecyclerView.Adap中重写notifyItemChanged的动画
android-在RecyclerView.Adap中重写notifyItemChanged的动画 好吧,我有一个带适配器的RecyclerView,一切正常. ArrayList数据集中的项目会定期 ...
- android 头部分割线,ItemDecoration实践之分割线与粘性头部
RecyclerView提供了良好的设计,将各部分功能的实现都拆解开,方便自定义,虽然加大了使用难度,但是却大大的增加了可扩展性,稍微会使用之后,扩展起来非常的舒心. 功能:适用于以下几种布局的分割线 ...
- Android仿网易游戏的精美开场动画+动画基础详解
可以看到现在不少app都加入了开场动画,效果还是挺不错的,今天我就在这分享一下仿网易游戏的开场动画制作,同时我也在文章中加入了Android动画基础的详解,接下来就进入主题吧. 首先是布局文件: &l ...
- Android中使用SVG实现炫酷动画效果
前言 SVG,即Scalable Vector Graphics 可伸缩矢量图形.这种图像格式在前端中已经使用的非常广泛,而在移动端的开发中,遇到一些复杂的自定义控件或者动画效果,我们就可以考虑使用S ...
- Android仿小红书启动页平行动画
实现效果 需要注意的: view.setTag()和view.getTag() View中的setTag(Object)表示给View添加一个格外的数据,以后可以用getTag()将这个数据取出来. ...
- android切换页面上滑动动画,Android ViewPager多页面滑动切换以及动画效果
评论 #28楼[楼主] 2012-06-01 14:27D.Winter @孤寒江雪 我猜 要么在头尾各再加入一个页卡 在页卡切换监听中判断,如果选中了头尾的页卡,就返回到相邻的那个页卡.头尾页卡的界 ...
- android 中间按钮突出,Android 实现 按钮从两边移到中间动画效果
Android 实现 按钮从两边移到中间动画效果html package org.shuxiang.test; import android.app.Activity; import android. ...
最新文章
- 利用js对页面数据进行排序
- php是范例,php基础范例
- 从零开始,带你玩转一站式实时数仓Hologres
- NOIp 2014 #5 解方程 Label:数论?
- brpc访问MySQL_怎么使用Swoft 搭建微服务(TCP RPC)PHP中高级进阶
- Autodesk 3DSMax 2012 安装说明
- 华南理工计算机电路基础试题,华南理工计算机电路基础模拟考试题
- 数学建模入门-matlab实现偏微分方程数值解
- 谷歌AI版“你画我猜”刷屏朋友圈 背后是这样的原理!
- aspUpload有组件上传文件
- JDK8 Windows系统中Java HotSpot虚拟机配置参数
- 阳明心学解析——心学本质关系连接
- 校园网状态下通过智能插座为ipad实现远程智能充电
- Java动态代理的原理
- 英雄榜再添豪杰!分享喜悦与荣誉
- 《TCP IP网络编程》阅读笔记及部分《图解 TCPIP》《图解 HTTP》补充笔记
- 上海大学计算机学院邢稹,【CES·毕业季】学霸寝室||相约一起“上岸”,我们是最亲密的战友!...
- 真材实料才是底气!华为某大佬从不加班,下班后不接电话,只因技术太牛,领导毫无办法!...
- Python画图-中使用plt生成的图的legend,设置字体大小
- 九州贯连:智能体重秤为什么卖得贵,是因为考研英语二会考嘛?
热门文章
- 问题解决——使用CriticalSection后 0xXXXXXXXX处最可能的异常: 0xC0000005: 写入位置 0x00000014 时发生访问冲突
- JavaWeb 项目安全问题及其解决方案
- 基于spring boot的统一异常处理
- 记一次前端问题解决历程(Cannot read Property ‘call‘ of undefined)
- 关于mybatis的xml文件中使用 >= 或者 <= 号报错的解决方案
- Java泛型-为什么允许“扩展T”但不允许“实现T”?
- 解释Python的‘__enter __‘和‘__exit__‘
- 如何使用npm重新安装应用程序的依赖项?
- 从HTML页面重定向
- centos7 搭建FastDFS服务器