- 博客(21)
- 收藏
- 关注
原创 Effective Kotlin 译文:Chapter3-Item24-泛型的型变
文章翻译自《Effective Kotlin: Best practices》 中的 Chapter 3 - Item24 - Consider variance for generic type
2022-03-31 09:30:00 217
原创 一文了解 Java/Kotlin 中的泛型
阅读本文你将了解: 什么是形变、协变、逆变和抗变,在 Java 和 Kotlin 中如何实现以上形变,以及 Java 和 Kotlin 中泛型的异同
2022-03-31 09:15:00 669
原创 自定义生命周期以及实现生命周期感知能力
如何让原本不具备生命周期的 View 拥有和Activity/Fragment 一样的 Lifecycle?如何让代码具备生命周期感知能力?
2022-03-28 18:00:00 634
原创 LiveData 非粘性消息的探索和尝试
我们可以使用 LiveData 来发送事件吗?如何使用 LiveData 实现非粘性消息的发送呢?这里分享一些尝试和探索...
2022-03-27 09:15:00 458
原创 手把手教你如何用 100 行代码实现一个有生命周期感知能力的 EventBus
手把手教你如何用 100 行代码实现一个有生命周期感知能力的 EventBus,实现一个能够在生命周期 destroy 的时候自定解绑监听
2022-03-26 09:30:00 221
原创 LiveData 的正确使用姿势以及反模式
你真的会用 LiveData 吗?你了解其中有哪些坑吗?本文将介绍 LiveData 的正确使用姿势以及常见的错误使用方式
2022-03-26 09:15:00 598
原创 Android 图形处理 —— Matirx 方法详解及应用场景
上一篇文章《Matrix 原理剖析》 介绍了 Matrix 的基础原理,本文介绍 Matrix 一些常用方法以及具体的使用场景
2022-03-25 18:15:00 2410
原创 Android 图形处理 —— Matrix 原理剖析
介绍了 Matrix 图形变换的原理,关于平移、缩放、旋转、错切的计算原理,学生时期学习的线性代数和三角函数终于派上用场了...
2022-03-25 18:00:00 4335
原创 使用 Architecture Component 实现 MVVM 的正确姿势
使用 Architecture Component 实现 MVVM 的正确姿势是怎样的?ViewModel 和 LiveData 在使用的时候有什么需要特别注意的?
2022-03-25 09:49:54 2836
原创 关于AlarmManager的一些笔记
1、传入的Intent会被广播传输2、设置闹钟之后会在手机休眠状态也维持,除非关机或重启之后3、onReceive()方法正在执行时,AlarmManager会获得系统的cpu唤醒锁,保证期间手机不休眠4、setExactAndAllowWhileIdle5、setRepeating(int type, long triggerAtMillis, long intervalMill
2017-10-29 16:53:14 431
原创 关于ViewHolder的getLayoutPosition和getAdapterPosition
getLayoutPosition返回布局中最新的计算位置,和用户所见到的位置一致,当做用户输入(例如点击事件)的时候考虑使用getAdapterPosition返回数据在Adapter中的位置(也许位置的变化还未来得及刷新到布局中),当使用Adapter的时候(例如调用Adapter的notify相关方法时)考虑使用
2017-10-27 15:24:38 15918
原创 修改DialogFragment的大小和位置
使用DialogFragment的时候,默认在窗口两侧留有padding,位置在屏幕中间,如果想要修改成在底部以及使窗口宽度铺满屏幕可按照以下代码修改其中在onCreateView中,使用getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE)设置窗口无标题getDialog().getWindow().getAttributes().w
2017-10-18 17:12:52 11267
原创 关于Toolbar和ActionBar的一些坑
最近开发用到了ToolBar和ActionBar,遇到一些坑,这里做一个简单的记录:1.使用ToolBar替换ActionBar: 首先定义一个ToolBar布局<android.support.v7.widget.Toolbar android:id="@+id/toolbar" app:theme="@style/ToolbarTheme" an
2017-10-18 11:40:10 552
原创 关于BitBucket的一个坑:设置SSH
这几天一直在捣鼓Git,玩了各种代码托管平台,GitLab、BitBucket等,其中在BitBucket这里挑了一个巨坑:远程建仓之后,我在本地用ssh的方式测试push一个文件上去,结果出现push失败了,于是我想起我没有设置好ssh,于是打开远程仓库->setting->access keys->add key当时心想着一定就是设置ssh的地方了吧,于是果断把ssh粘贴上
2017-08-11 11:10:55 3862
原创 实现聊天ListView时遇到的几个问题
在做聊天类应用时,聊天消息列表是最为重要的一部分,如何实现新消息到达自动滚动到底部还有打开输入法时界面被遮挡或者ActionBar被顶出去等问题:1、新消息到达自动滚动:只需要设置ListView的transcriptMode属性即可ListView布局文件的实现:<ListView android:id="@+id/chat_list_view" android:la
2017-05-16 13:24:24 443
原创 设置RecyclerView的OnItemClickListener
RecyclerView的出现代替了ListView的“霸主地位”,关于RecyclerView的好处这里不再多说,不过用过RecyclerView的朋友们都知道,这个傲娇的View没有提供setOnItemClickListener方法,如果我们要实现这样的功能该怎么做了,翻遍了网上所有的实现方式,下面介绍两中我觉得还不错的方法。通过ViewHolder传入监听接口:RecyclerView自己提
2016-10-03 14:40:16 598
原创 AndroidStudio中配置GreenDao及其使用
关于GreenDao在AS中的配置方法已经有大神的博客讲得特别的详细,所以急直接贴出他的博客地址了 http://blog.csdn.net/h3c4lenovo/article/details/43566169这里说一下我在按照教程配置的时候遇到的一些问题,貌似是引入实例工程的时候有问题,我直接贴出我改好运行无误之后的gradle:实例工程的build.gradle文件project(':M
2016-09-28 23:25:56 560
原创 用Collections对集合进行增删查改操作
我的上一篇博客说到利用Collections对集合进行排序的方法,那么接下来就说说如何利用Collections来对集合进行增删查改等操作。添加:public static boolean addAll (Collection<? super T> c, T... a) 第一个参数是将要插入数据的集合;第二个参数是要插入的数据,可以是一个也可以是多个。查询:· public static int
2016-09-25 23:03:49 813
原创 通过Comparator和Comparable对集合进行排序
在java编程和Android开发过程中,经常遇到需要对集合进行排序的情况,而Comparator就是专门为此设计的一个接口;如果集合里是实体类的话,那么使用Comparabale接口就更加方便了。下面就说说这两个接口的使用方法。Comparator :假设有这么一个集合list:List<int> list = new ArrayList<>();list.add(8);list.add(5)
2016-09-21 23:03:32 623
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人