- 博客(9)
- 资源 (14)
- 收藏
- 关注
原创 Compose手势
可以在修饰符上调用verticalScroll或horizontalScroll并传入ScrollState将其设置为可滚动,可以通过scrollState设置滚动位置或获取当前状态。可滚动修饰符scrollable只是检测滚动手势,控件不会发生实际偏移,以下案例用来显示手势滑动的距离。可以使用draggable修饰器监听其在水平或垂直方向上的滚动,并设置其偏移达到拖动的效果。简单的嵌套滚动的那个子级滚动到顶部无法在滚动时,手势会自动传递给父级进行处理。
2025-04-06 22:11:04
95
原创 Compose动画
当目标值变化时 会提供一个变化的过程compose提供了如下函数进行设置使用AnimatedVisibility包裹或在父容器的装饰器中调用animateContentSize方法,可以自定义进入和退出动画可以在容器的装饰器中调用animateContentSize方法进行设置使用updateTransition创建一个transition并使用其属性创建动画 当改变创建使用的属性行transition创建的所有动画都会执行创建一个InfiniteTransition对象并使用其中的动画函数。
2025-04-06 19:29:52
326
原创 CompositionLocal
其中compositionLocalOf创建的对象值发生变化时,只有在其作用域下有使用该属性的函数才会发生重组,而staticCompositionLocalOf创建的对象值发生变化时,处于该作用域下的所有函数都会发生重组,在创建的对象不怎么会发生变化时staticCompositionLocalOf的开销比compositionLocalOf要小,因为compositionLocalOf会去追踪使用该值的函数。CompositionLocal为隐式传参,可以通过下面的代码理解隐式传参。
2025-04-03 20:52:15
158
原创 Compose状态
如旋转屏幕等会丢失数据,可以通过rememberSaveable创建状态会自动保存实现了Parcelize的数据。1.compose内的状态使用remember函数保证函数发生重组时保存状态可以通过下面这3中方式创建。2.remember可以传入唯一key保证不会一直初始化。此外Map和List需要自行定义保存和恢复时候的逻辑。
2025-04-03 20:33:43
106
原创 compose布局学习总结
1.对于单个控件可以在修饰符layout中进行自定义使用measurable.measure(constraints) 进行一次测量拿到尺寸的具体属性并重新设置控件的宽高,然后再layout中设置显示内容的开始位置。可以在布局中去指定测量的时候按最大或者最小值去测量,如下面的分隔线设置的是最大宽度,当时布局中使用intrinsics指定测量按满足子控件的最大宽度显示。相当于FrameLayout 需要明确的指出控件的具体位置。可以设置一个形状然后再包裹对应的控件如设置一个圆形的图片。
2025-03-29 22:17:47
402
原创 android 获取通话记录对应卡槽,短信记录对应卡槽
最新公司有需求 要求屏蔽监听插入双卡后的用户指定一张卡,找了半天资料现在总结一下1.获取通话记录对应卡槽通话记录数据库(content://call_log/calls)中有存
2021-06-18 10:14:25
1788
3
原创 Android 炫酷的loading
话不多说先上图效果图代码写法就不介绍了 直接上用法 xml布局com.tong_ci.dome.widget.LoadingView android:id="@+id/loadingView" android:layout_width="100dip" android:layout_height="100dip" />
2017-04-26 11:10:14
295
原创 解决as无法删除class.jar问题
先安装 lockhuntersetup_3-1-1.exe 不要修改安装路径 下载地址:在app下的 build.gradle 加入代码(注:不要加在Android根目录下)task clean(type: Exec) { ext.lockhunter = '\"C:\\Program Files\\LockHunter\\LockHunter.exe\"'
2016-04-12 17:27:37
947
原创 android rgb颜色渐变
不废话了 直接上代码/*** cl1为起始变化颜色,cl2为目标变化颜色,runNum为变化度取值范围的0-100*/publicint getColorChanges(int cl1, int cl2,float runNum) { float r1,g1,b1,r2,g2,b2; r1 = Color.red(cl1); g1=Color.green(cl
2016-04-07 11:11:14
837
java spring框架 无敌邮件发送
2018-12-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人