Jetpack Compose系列:LaunchedEffect与rememberCoroutineScope的使用
Jetpack Compose是Google基于Kotlin语言编写的一套UI框架,协程(Coroutines)的使用贯穿了整个Jetpack Compose,如动画的启停、数据的存取(数据库SQLite+Room、SharedPreferences的替代者DataStore)、网络请求等,都需要在协程中进行。可以说,熟练掌握协程是入门Jetpack Compose的基本要求。 一、协程作用域 ”...
Jetpack Compose系列:实现底部弹窗的ModalBottomSheet
在Android中,底部弹窗的使用非常普遍,如微信的更多操作弹窗,网易云音乐的播放列表弹窗等。在传统的View体系里面,我们使用PopupWindow或BottomSheetDialog来实现。而在Jetpack Compose里,官方也提供了一种开箱即用的组件,那就是ModalBottomSheet,由Material 3 Compose库提供。 微信:更多操作底部弹窗 1 基本使用 1.1 添...
Android折叠屏手机快速适配方案
1 前言部分 目前各大主流手机厂商都已经推出了自己的折叠屏产品,经过几轮产品迭代后,也算是比较成熟可用了。在公司里,(大)领导尤其喜欢用折叠屏,一是比较新颖,二是折叠屏展开后的大屏也有利于领导查阅文件。 但领导用就意味着,APP不得不适配折叠屏手机。适配折叠屏手机指的是折叠屏翻开后,UI不能出现严重变形、显示不全、错位、遮挡等问题,且大小屏必须切换自如,即同一个页面,折叠屏翻开后是正常的UI,合上...
viewerjs如何多次初始化
1 问题背景 做web前端开发的总会用到图片查看器,就是点击查看大图的功能。对于大厂,肯定是自己实现一套图片查看器,但对于个人开发者,时间、精力、技术都有限,自己实现一套不现实,还是引用第三方库比较实际。其中viewerjs几乎是开源出来的图片查看器中功能最全的库,截止目前Github上的小星星已经有7.4k。 对于viewerjs的使用非常简单,如果不需要个性化配置的话,两三行js代码就能初始化...
Android中启动模式为singleTask的Activity如何回到启动自己的Activity(回到上一个页面)
1 问题背景 最近Android端的测试同学提了一个Bug,说从页面1拉起了页面2,再从页面2重新拉起了页面1,这时在页面1点击返回键,无法回到上一个页面(即页面2),而是回到了首页。作为一名Android开发,第一反应肯定是Activity的launchMode有问题。看了一下AndroidManifest.xml,页面1-Activity1的launchMode="singleTask",页面...
腾讯Mars-xlog多实例化
1 问题背景 公司APP的日志系统全面改用了腾讯开源项目Mars中的xlog日志系统。由于模块化开发,APP中不同的模块由不同的团队进行开发与维护。为了定位不同模块中的Bug,各模块及主工程都接入了xlog。 在一次定位Bug的过程中,发现主工程的本地日志文件记录不全,个别模块甚至丢失了日志文件。经过排查发现是各模块及主工程都使用了com.tencent.mars.xlog.Log的i、d、v、e...
BottomSheetDialog在横屏/折叠屏手机展开大屏时显示不全
1 问题背景 公司APP的某个需求的底部弹窗使用了Android Material Design库的BottomSheetDialog组件实现。由于公司要求在折叠屏手机展开大屏时APP能正常使用,在某次冒烟自测时使用了折叠屏手机做测试,发现该底部弹窗显示不全,影响正常功能使用,需要修复。 此处使用模拟器强制APP横屏来模拟折叠屏手机展开大屏时的显示效果。 可以看到,底部的弹窗只弹出了一点点,下方的...
avatarmanpok
Android,Java
卷呀卷呀卷呀卷