技术坑
Android下RecyclerView使用瀑布流布局滚动之后如何保持item相对位置不变
mtsym 发表于2019-06-17 浏览5981 评论0
RecyclerView采用StaggeredGridLayoutManager布局之后, 如果在滚动之后要保持item焦点位置相对不变, 只需要简单的代码处理就行了, 在滚动前记忆span位置, 滚动后通过遍历可视区域item, 定位相应span位置的view, 然后请求焦点, 大致如下
// 成员变量
int mSpanPosition = -1;
// 滚动之前记忆item相对位置
View focusChild = getFocusedChild();
<!--autointro-->
软件
安卓软件视频精灵官方发布
mtsym 发表于2019-05-19 浏览5169 评论0
软件
一款安卓手机视频倒放软件
mtsym 发表于2019-05-19 浏览4792 评论0
软件
Android Studio升级gradle的kotlin版本之后报错API 'variant.getPackageLibrary()' is obsolete
mtsym 发表于2019-05-19 浏览7104 评论0
今天我将一个项目的kotlin插件版本升级到1.3.31会出现下面警告
WARNING: API 'variant.getPackageLibrary()' is obsolete and has been replaced with 'variant.getPackageLibraryProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.android.co<!--autointro-->
软件
安卓视频简单加密软件
mtsym 发表于2019-05-04 浏览4103 评论0
大家有时候可能会往手机里放一些个人隐私小视频,但是如果不进行任何处理,视频及文件一类管理软件会把视频截帧图展示出来,很容易被人发现,可能会很尴尬,所以需要把视频加密才行。
安卓下的视频精灵就添加了这么一个简单视频加密的功能,采取对视频部分数据随机抽取加密,以阻止预览视频一类软件暴露视频文件信息。
点击首页视频加密,进入后点击选择文件或文件夹进行加密处理,加密后的文件扩展名为wvod,可在软件里面直接观看或者还原
注意:由于视频加密存在风险,因此重要视频加密前请进行有必要的备份处理
技术坑
Android下ViewPager、RecyclerView滚动状态监听不调用问题
mtsym 发表于2019-05-04 浏览4842 评论0
有时候在UI上一些逻辑处理时会进行滚动状态监听,比如在使用ViewPager和RecyclerView的时候,但是有时候你可能发现某些状态并不会回调,例如SCROLL_STATE_IDLE,可能就出现bug了,为了避免这个问题,有几种办法
- 准确度要求不高,简单的情形下可以用timer
- 自己计算滚动状态然后进行处理,例如观察view的可见区域
技术坑
Android RecyclerView使用notifyItemRangeInserted的如何防止跳动
mtsym 发表于2019-05-04 浏览11602 评论0
Android在处理RecyclerView时候,如果使用notifyItemRangeInserted插入数据后可能界面发生跳动,解决这个问题只需要两步
- 把焦点优先获取权交给RecyclerView,并请求焦点,这样容器先hold住了焦点,便不会乱飞了
- 数据更新完成后,进行焦点恢复,将焦点优先权交给子元素,然后指定特定的view请求焦点
这个方案能解决大部分焦点乱跳问题,包括快速滚动的
代码大致如下
public void holdFocus(<!--autointro-->技术坑
Android下ObjectBox使用ObjectBrowser报错duplicate class问题
mtsym 发表于2019-04-26 浏览6673 评论0
Android的orm开源库也挺多的,但是个人项目使用的时候总有一些不满意的地方,稳定的库太复杂了,为了一丁点存储功能引入一个大的库显然不合适,小巧的要么bug多又不太稳定要么使用起来麻烦,在一些项目里面使用了一段时间ObjectBox之后,我把它引入到了一些新的项目,前阵子我想通过objectbrowser查看数据的时候,发现无法编译通过, gradle配置如下
ext.objectboxVersion = '2.3.4'
dependencies {
implemen<!--autointro-->技术坑
Android ConstraintLayout出现遮盖问题
mtsym 发表于2019-04-18 浏览10947 评论0
ConstraintLayoutl出来已经好几年了,很好用的一个布局控件,最大的优势就是能降低布局复杂度,减少布局嵌套层次,老的项目一些复杂的布局使用它进行重写之后会发现性能有大幅的提升,而且基本上能代替LinearLayout/RelativeLayout/FrameLayout这几种布局,有一种一统江湖的趋势。 ConstraintLayout一路上坑也很多,使用的时候各种莫名其妙的问题都有,比如在代替RelativeLayout的时候,嵌套的布局可能出现遮挡遮盖问题,乍一看自己写的约束没
技术坑
AndroidStudio的cmake项目报错Error occurred while communicating with CMake server
mtsym 发表于2019-04-08 浏览6611 评论0
有个cmake组织的jni库一年多没动过了,用最新的Android Studio版本打开发现文件夹.externalNativeBuild报错,于是清理掉,接着报错Error occurred while communicating with CMake server. 解决办法:将gradle tools升级到最新版本匹配当前Android Studio