
日常
放开那只肥鸡
Android移动开发
展开
-
Message享元模式学习
android是如何对Message进行复用的java的类是由成员变量+构造函数+成员方法组成->先看成员变量一开始的获取Message对象如何回收第一次进来第二次进来第三次进来回过头来我们再看获取message到了这里想必大家都明白它的核心是什么了吧?java的类是由成员变量+构造函数+成员方法组成->先看成员变量涉及复用的关键成员变量有:Message next;private static Message sPool;private static int sPoolSize =原创 2022-05-18 15:15:40 · 447 阅读 · 0 评论 -
AndroidStudio 因为电脑断电导致乱码
转载 2022-02-16 18:24:36 · 270 阅读 · 0 评论 -
viewpager嵌套Fragment被系统回收
viewpager嵌套Fragment被系统回收先看下activity层的处理方案我的布局层次介绍遇到的问题问题分析跟进先看下activity层的处理方案fragmentPagerAdapter源码在对fragment绑定的时候,会先findFragmentByTag,如果之前有被回收的fragment,会进行复用,也就是说不会执行新生成的fragment.attach(),相当于新的fragment是没有用的,但是我们的成员变量指向的确实这个新生成的fragment。@Overridepubli转载 2022-01-11 11:44:39 · 3833 阅读 · 0 评论 -
recyclerView选中播放动画突破布局边界
recyclerView选中播放动画突破布局边界1、横向均分处理。2、左右无限滑。3、如何确保刚好滑动item的中间4、更新ViewHolder5、动画突破布局边界6、adapter7、下面的小圆点8、dialog的一些设置如上所示,横向均分显示3个item,默认中间项目显示放大和播放动画,左右无限滑动,但是实际上只有5项,下面的几个小圆点显示目前是在第几项,每过5秒自动滑到下一个item。这里主要介绍recyclerView的处理。1、横向均分处理。基本上就是获取屏幕的宽减去两边padding再.原创 2022-01-10 17:47:53 · 2059 阅读 · 0 评论 -
recyclerView的滑动
1、无感知滑动:layoutManager?.scrollToPositionWithOffset(int position, int offset)第一个参数是指第几项,第二个参数是跟顶部的距离。当你的屏幕只能显示10项就满了,但是你的data有20个。你设置第10项,或者10以下都能置顶,但是超过10,它无法置顶,因为地下无法满足它铺满屏幕,相当于滑动到最底部无法再往上滑了。2、指定滑动多少距离或者多少项。下面是横向滑动,滑到下一个,同理你也可以改成竖直方向,getChildAt是获取屏幕上可原创 2022-01-10 15:48:14 · 2848 阅读 · 0 评论 -
透明activity在8.0的崩溃问题
activity的style <style name="MyTransparent" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="android:windowBackground">@android:color/transparent&原创 2022-01-10 14:10:29 · 1664 阅读 · 0 评论 -
xml标签选择器和渐变,方便复制使用
写一下xml的标签,以后可以复制修改使用。选择器<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="false"> <shape> <solid android:color="@c原创 2022-01-10 14:05:34 · 942 阅读 · 0 评论 -
简单的View的点击拓展方法,防抖和双击。
一些常量:object ViewClickDelay { var hash: Int = 0 var lastClickTime: Long = 0 var SPACE_TIME: Long = 600 var DOUBLE_TIME: Long = 500}防止多次点击:防抖fun View.setOnClickDelay(clickAction: (View) -> Unit) { this.setOnClickListener {原创 2022-01-10 13:45:45 · 1249 阅读 · 0 评论 -
主页数据加载数据有时加载不出来
问题:项目还是比较典型的mainActivity上面五个Fragment,出现的bug是有时候一进来主页Fragment部分数据没显示出来。追踪:网络请求确实发出去了,打印也响应数据返回了。 NetClient.api.XXXXX(map) .compose(NetworkScheduler.compose()) .bindToLifecycle(this) .subscribe(object : NetResponse<Re原创 2021-11-27 12:00:02 · 2277 阅读 · 0 评论 -
IM会话界面列表滑动问题
1、IM类的会话列表类似微信,底部输入框,顶部标题等,中间这一块都是rv列表展示。2、中间的rv是必须定位为wrap_content,无法设置match_parent。3、数据必须是倒序摆放,下拉刷新时候加载更多。我们知道类似布局管理器://第三个参数 true 数据跟布局倒序,从底部开始 你的position==0 是在最低部,跟平時相反var linearLayoutManager = LinearLayoutManager(this,RecyclerView.VERTICAL, false)原创 2021-11-27 11:32:39 · 986 阅读 · 0 评论 -
返回键莫名看不见,但是点击事件还在
我在某个界面需要toolbar的返回键做自定义处理,动态修改图片的颜色。 private fun setToolbarCustomTheme(id: Int) { val upArrow = ContextCompat.getDrawable(this, R.drawable.ic_back_black) if (upArrow != null) { upArrow.setColorFilter( Context原创 2021-11-25 11:36:11 · 192 阅读 · 0 评论 -
短信验证码输入框
其实用官方自定的那个inputEditText默认带下划线的,然后自己再实行焦点和输入框弹出等操作也可以。写这个自定义View主要是为了练习。/** * 实现了粘贴事件监听回调的 EditText */open class ListenPasteEditTextTest : AppCompatEditText { constructor(context: Context): super(context) constructor(context: Context, attribu.原创 2021-11-22 13:57:03 · 2283 阅读 · 0 评论 -
如何在数组里面保存多种泛型
需求:分配的一个任务关于搜索的修改,用户点击搜索的时候实际上请求了N个接口,不同接口返回的bean是不同的,实际的展示效果用的是recyclerView,那么就需要我们封装一个统一bean。我们知道通过创建一个集合,集合里面存储不同的数据bean,然后拿出来强转回去这样的方式是不行的,因为java是假的泛型,编译时候会进行泛型擦除,变成Object,编译器通过预先留下的注解来描述说明对应的泛型,但是没有办法给你说明无数种,比如一个Father,一个Son,它没有办法给你记住超过一个类型的泛型。我们平时的原创 2021-06-02 21:05:27 · 231 阅读 · 0 评论