首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

使用POI打开Excel文件遇到out of memory该如何处理?

当我们开发处理Excel文件,Apache POI 是许多人首选的工具。但是,随着需求的增加、工程复杂,在打开复杂的Excel文件的时候可能会出现一些异常情况。...根据测试,打开50万个单元格数据的时候,就会遇到OOM(OutOfMemory)的问题;或者打开包含有20万个合并单元格(包含border或者背景色)的时候,也遇到OOM(OutOfMemory)...第一个办法,对于仅导入数据很有效。但Excel是有样式的情况,把Excel转成CSV就会导致样式丢失,所以pass了这个方法。...经过一些尝试,发现是同一间构建的workbook太多了,减少到4个,单元测试就可以正常跑完。 这样来看,POI的问题还真是让人挺头疼。...此外根据测试来看,workbook的数量,可能是跟Excel文件的大小相关,这会导致后续开发可能遇到更多的问题。

27210

Android仿微信朋友圈点击评论自动定位到相关行功能

随便看看各种UI实现的代码 本文涉及到的相关代码已经上传到 https://github.com/r17171709/android_demo/tree/master/WeixinEditText 打开你的微信朋友圈...输入框的产生 这里有一个关键的地方,如何将EditText悬浮在键盘上,并且RecyclerView不会被挤上去。这里我们可以使用Dialog,同时在布局中要使用ScrollView来进行占位 <?...图中红色部分为键盘展现之前某条信息评论区所在位置;蓝色部分为键盘键盘打开的时候,我们需要将红色的部分移动到黄色的位置。...但是还有几个小问题,如果是点击最后一行的话,因为滚动空间不足而不能实现相同的效果,并且按返回键的时候,键盘先消失,然后再按一次之后Dialog才消失。...针对第一个问题,我们直接添加一个空View作为列表最后一项即可,并且高度要等于输入框的高度;第二个问题也很简单,就是监听键盘弹出与隐藏View高度发生的变化 data class BottomClass

1.5K60

ItemTouchHelper 实现交互动画

item被拖拽或侧滑触发 03.简单实现思路 几个方法中代码思路 要想达到上面功能需求,在getMovementFlags方法中,当用户拖拽或者滑动Item的时候需要我们告诉系统滑动或者拖拽的方向,...左右滑出屏幕其他item补上 只要在item滑出屏幕,将对应的数据删掉,再调用RecyclerView的notifyItemRemoved()方法刷新布局即可。...04.拖拽效果上优化 拖拽效果优化 在item被拖拽或侧滑修改背景色,动作结束后将背景色恢复回来,而ItemTouchHelper.Callback中正好有对应这两个状态的方法,分别是:onSelectedChanged...左右滑动使item透明度变浅且缩小该如何实现呢?...itemView而已,那两个透明缩小的itemView被再次使用时,之前设置的透明度和高度比例已经是0,所以就出现了这种情况,解决方法也很简单,只要在item被移除后,将itemView的透明度和高度比例设置回来即可

3.8K20

AndroidTv Home界面实现原理(二)——Leanback 库的主页卡位缩放动画源码解析

如果要我们自己实现的话,思路应该不难,就是写个放大、缩小动画,然后在卡位获得焦点应用放大动画,失去焦点应用缩小动画,所以关键点只是在于如何进行封装。...那么,我们这次阅读源码的目的就是要搞清楚:卡位获得焦点放大、缩小动画是如何实现的? 阅读源码时经常会碰到一个问题,那就是该从哪入手,从哪开始看?...那么,再来想想,既然是要实现卡位获得焦点和失去焦点放大和缩小动画,那么肯定是需要监听 ItemView 的焦点变化,对吧?...OnItemFocused.png 所以,在 ItemBridgeAdapter 里注册了焦点变化监听,焦点变化时,通知 mFcousHightlight 执行 onItemFocused() 方法...View 要创建注册一个焦点监听器,该行里的 ItemView 焦点发生变化时会从 ItemViwe 的 Tag 里取出缩放动画对象,如果没有则 new 一个,然后应用缩放动画。

1.6K70

提高效率 |ArcGIS Pro 中所有快捷键一网打尽

Ctrl+L 布局为活动视图,锁定或解锁在内容窗格中选择的项目。 Ctrl+Shift+L 布局为活动视图,请在内容窗格中锁定或解锁该级别上的所有项目。...X + 拖动 缩小。 按住并拖动光标。松开指针进行缩小。 Z + 拖动 放大或缩小。 放大或缩小视图。 T 显示折点。 绘制新线,按住可在指针附近显示现有要素的折点。 空格键 捕捉。...空格键 打开和关闭捕捉。 按住空格键,暂时关闭捕捉功能。创建手绘折线或面要素,暂时打开捕捉功能。 创建弧线段 用于弧线段构造工具的键盘快捷键 键盘快捷键 操作 注释 R 指定半径。...模式 用于模型的键盘快捷键 键盘快捷键 操作 Ctrl+N 模型视图处于活动状态,创建一个新模型。 Ctrl+S 保存活动模型。 Ctrl+Shift+S 使用其他名称和位置保存活动模型。...T 打开或关闭地形跟踪。 在平移立体影像对时,地形跟踪自动将立体光标保持在高程表面上。此功能在导航立体显示非常有用。

70820

Android开发常用的知识点

stateUnchanged 主窗口出现在前面,软键盘被保持它上次是什么状态,无论上次是可见或隐藏。...stateHidden 当用户选择该Activity,软键盘被隐藏——也就是说,当用户确定导航到该Activity,不管他离开的Activity的软键盘是可见还是隐藏都会被隐藏,不过当用户离开一个...stateAlwaysHidden 该Activity主窗口获取焦点,软键盘总是被隐藏的,不管是确认导航到该Activity还是Activity被覆盖后显示出来。...stateVisible 当用户导航到Activity主窗口,软键盘是可见的。不过当用户离开一个Activity而导致另一个被覆盖的Activity显示出来时,软键盘会使用默认的设置。...stateAlwaysVisible 该Activity主窗口获取焦点,软键盘总是显示的,不管是确认导航到该Activity还是Activity被覆盖后显示出来。

2.5K10

Android 掉帧优化

一个Item滑出可视区域,它会先被放入mCachedViews中;而一个Item滑入可视区域,Recycler也优先去mCachedViews中查找。...根据这个特性,当用户频繁地上下滑动,mCachedViews的利用率较高。...试想一个能在可视区域展示n(n>>5)条数据的RecyclerView(如历史记录),滑动的时候RecyclerPool的缓存明显不够,不断地创建ViewHolder,很消耗性能。...为ItemView设置点击监听,不要在onBindViewHolder()中新建OnClickListener,这不仅新建多余的对象消耗内存,也增加onBindViewHolder()的耗时。...④ measure()优化和减少requestLayout()调用 RecyclerView宽高的测量模式都是EXACTLY,onMeasure()方法不需要执行dispatchLayoutStep1

1.6K40

android gallery当前view变大,GitHub – hutcwpGalleryViewDemo: 实现画廊效果(中间放大两边缩小)无限循环向左滑向右滑,Viewpager和Recycl

:28.0.0’ 一个是ViewPager所在包,另一个是RecyclerView所在包 RecyclerView实现GalleryView效果可(伪无限)无限左滑右滑 先上效果图 要点: 在有限的数据里面...adapter) { super.setAdapter(adapter); scrollToPosition(getAdapter().getItemRawCount() * 10000);//开始的偏移量...) scrollToPositionWithOffset(position,0) smoothScrollToPosition 其实可以理解成一个模拟的滑动操作,回调那个滑动监听的回调方法,有滑动效果...item.setPivotY(item.getHeight() / 2.0f); float scale = 1 – 0.433f * Math.abs(fraction); // 0.433f是放大的View面积和缩小的...的回收机制了 在有限的数据,实现循环 在 ViewPager 的首尾多添加一个 View,监听 ViewPager 滚动事件,滑到边界,设置当前 position 为中间的某个 item,不过这种方式容易出现页面闪动导致滑动不连贯

2.1K20

RecyclerView】 四、RecyclerView 布局 ( 网格局管理器 GridLayoutManager )

设置成 RecyclerView.VERTICAL 或 RecyclerView.HORIZONTAL. ③ boolean reverseLayout : 设置成 true , 布局翻转, 从尾部开始头部结束...方向是 RecyclerView.VERTICAL 垂直方向 , 网格元素排列顺序是逐行排列 , 先将第一行排满 , 然后将第二行排满 , int spanCount 参数设置的是每行的元素个数 ;...( 现代人写字顺序 ) 方向是 RecyclerView.HORIZONTAL 水平方向 , 网格元素排列顺序是逐列排列 , 先将第一列排满 , 然后将第二列排满 , int spanCount...* @param reverseLayout 设置成 true , 布局翻转, 从尾部开始头部结束. */ public GridLayoutManager(Context.../download/han1202012/14945904 ( 使用 Android Studio 打开 )

1.5K00

仿触手直播首页切换效果

说到这的时候很多人好奇为什么监听SlideRecyclerView滑动处理没有打开外层的RecyclerView代码呢。这里打开外层的RecyclerView滑动需要放在ontouch里面处理。...因为在SlideRecyclerView滑动监听里面是无法监听到如果滑动到顶部继续往下滑和滑动到底部继续往上滑的操作,因此这里就通过ontouch的坐标该变量来是否打开外层的RecyclerView...滑动,何时打开滑动。...原则是item滑动到顶部,若再继续往上滑禁掉外层RecyclerView滑动,若再继续往下滑打开外层RecyclerView滑动;item滑动到中间某一个位置,此时不管再继续往上滑还是往下滑都是禁掉外层...RecyclerView滑动;item滑动到底部,若再继续往上滑打开外层RecyclerView滑动,若再继续往下滑禁掉外层RecyclerView滑动。

54220

recycleview的优化_recyclerview原理

调用notifyDataSetChanged()方法,ViewHolder进入上面的一级缓存mAttachedScrap中,而不是进入缓存池pool中,这样的好处:1)不会存在缓存池pool满的问题...这个机制导致一个问题,启动应用之后,在屏幕可见范围内,如果只有一张卡片可见,滚动的 候,RecyclerView找不到可以重用的view了,它将创建一个新的,因此在滑动到第二个feed的时候就会有一定的延时...通过setDrawingCacheEnabled把cache打开,再调用getDrawingCache就可以获得view的cache图片,如果cache没有建立,系统自动调用buildDrawingCache...移出屏幕的ViewHolder先进入第一级缓存ViewCache中,第一级缓存空间已满,会考虑将一级缓存中已有的ViewHolder移到RecyclerViewPool中去。...(true),是支持嵌套滚动的,也就是说它嵌套在NestedScrollView中,默认随着NestedScrollView滚动而滚动,放弃了自己的滚动。

3.8K20
领券