![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
蓝天&天道酬勤
这个作者很懒,什么都没留下…
展开
-
ViewModel实现原理
ViewModel复用,实际是ViewModelStore的复用;ViewModelStore使用HashMap存取了ViewModel对象大概如下图所示:原创 2021-07-17 10:39:15 · 240 阅读 · 1 评论 -
沉浸式实现步骤笔记
在values、values-v19、values-v21的style.xml都设置一个 Translucent System Bar 风格的Themevalues<style name="TranslucentTheme" parent="MaterialAppTheme"> <item name="windowNoTitle">true</item> </style> <style name="Materia.原创 2020-12-05 16:05:32 · 210 阅读 · 0 评论 -
ViewDragHelper.CallBack中方法回调
//view是否可以拖动 override fun tryCaptureView(child: View, pointerId: Int): Boolean { return true } //水平方向滑动距离Return the magnitude of a draggable child view's horizontal range of motion in pixels.This method should return 0 for views that c...原创 2020-11-09 17:00:54 · 292 阅读 · 0 评论 -
多点触控
View的事件序列:ACTION_DOWN - ACTION_MOVE - ACTION_UP(ACTION_CANCEL)ACTION_DOWN - ACTION_POINTER_DOWN - ACTION_MOVE - ACTION_POINTER_UP - ACTION_UPPointerId对于每个按下的点是不变的event.getPointerId(index)PointerIndex会随着手指按下与抬起发声改变每次按下手指,就让新手指接管事件当抬起手指为原创 2020-11-09 11:54:24 · 239 阅读 · 1 评论 -
Android 蓝牙扫描与手机位置权限是否打开相关
记录下蓝牙连接与位置权限的问题:首先,在蓝牙APP开发的时候需要位置权限:<!-- If your app targets Android 9 or lower, you can declare ACCESS_COARSE_LOCATION instead. --><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />问题:有些手机(红米)在设置界面中关掉位置信息,AP原创 2020-09-29 17:05:29 · 3173 阅读 · 1 评论 -
MotionLayout中与动画有关设置
MotionLayout属性定义:[ … ] 指定位置[ …] 指定属性<KeyPositionmotion:motionTarget="@id/targetPath" //运动视图motion:framePosition=“percentage” //1 到 99 之间的整数,何时到达此指定点motion:keyPositionType="type“ //指定如何解释 percentX 和 percentY 值,motion:percentX=“xOffset原创 2020-09-13 11:12:41 · 323 阅读 · 0 评论 -
App启动流程
原创 2020-05-22 17:11:12 · 138 阅读 · 0 评论 -
Toast在部分厂家手机上会显示APP名称解决方法
Toast显示APP名称解决过程:接客户反馈在Toast中会显示APP的名称,需要删除;从网上找到解决方法将创建修改为: Toast toast = Toast.makeText(getContext(), "", Toast.LENGTH_SHORT); toast.setText("显示内容"); toast.show();测试后觉得没有问题,发给客户确认...原创 2020-04-30 10:41:44 · 678 阅读 · 0 评论 -
setContentView()与LayoutInflater.inflate()关系
在Activity中调用setContentView(R.layout.activity_main)方法,就会进入AppCompatActivity中的setContentView(@LayoutRes int layoutResID)public void setContentView(@LayoutRes int layoutResID) { this.getDelegate...原创 2020-02-27 14:44:26 · 419 阅读 · 0 评论 -
RecyclerView回收复用实现学习笔记
今天继续启舰的自定义控件三部曲视图篇(八)——RecyclerView系列之五回收复用实现方式二的学习,记录下自己的理解。自定义控件三部曲视图篇(八)——RecyclerView系列之五回收复用实现方式二直接Copy实现原理:在这里,我们主要替换掉在上节中移动item所用的offsetChildrenVertical(-travel);函数,既然要将它弃用,那我们就只能自己布局每个item了...原创 2020-02-24 14:54:37 · 521 阅读 · 0 评论 -
RecyclerView实现回收复用学习笔记
学习启舰的自定义控件三部曲视图篇(七)——RecyclerView系列之四实现回收复用,记录一下自己的理解,方便以后复习查看。回收复用主要有两部分:(直接copy)第一:在onLayoutChildren初始布局时:使用 detachAndScrapAttachedViews(recycler)将所有的可见HolderView剥离一屏中能放几个item就获取几个HolderView,撑满初...原创 2020-02-22 21:24:41 · 1356 阅读 · 0 评论 -
Scroller弹性滑动原理
Scroller的典型使用方法:Scroller mScroller = new Scroller(mContext);private void smoothScrollTo(int destX, int destY) { int scrollX = getScrollX(); int scrollY = getScrollY(); int deltaX = dest...原创 2020-02-20 14:58:59 · 507 阅读 · 0 评论 -
Can not perform this action after onSaveInstanceState:问题分析
问题描述:当手机进入黑屏的时候,APP蓝牙断开连接,APP收到蓝牙断开连接,通过EventBus方式调用commit方法让UI界面跳转到蓝牙连接界面,此时会报Can not perform this action after onSaveInstanceState:错误,且不会正常跳转到指定界面,从网上找到解决方法是:用commit()替换成commitAllowingState()方法,问题解...原创 2020-02-20 09:20:51 · 442 阅读 · 0 评论 -
CoordinatorLayout + Behavior + NestedScrollView联动原理解析
CoordinatorLayout中重写了generateLayoutParams方法,返回LayoutParams;@Override public LayoutParams generateLayoutParams(AttributeSet attrs) { return new LayoutParams(getContext(), attrs); }...原创 2020-02-18 15:50:01 · 708 阅读 · 0 评论 -
ArgbEvaluator的使用
功能:计算颜色渐变的类。构造函数:ArgbEvaluator();方法:Object evaluate(float fraction, Object startValue, Object endValue)参数fraction,取值为0.0f ~ 1.0f,表示从开始颜色到结束颜色的比重;参数startValue:开始颜色参数endValue:结束颜色返回值:返回表示中间颜色的整数例...原创 2019-12-10 09:08:26 · 631 阅读 · 0 评论