- 博客(40)
- 资源 (1)
- 收藏
- 关注
原创 关于 VieiwPager2 + FragmentStateAdapter 的内存泄漏问题
根据以上信息,定位到问题代码那么我们先去看一下我们的有什么操作,可以看到,我们调用的adapter继承自,那么我们去看一下中这个类型对应的参数.可以看到该参数的使用在这两个方法中,我们通过在重写方法,并且在该方法内添加Log,发现当发生内存泄漏时,该方法并没有被调用。经过查找资料:发现如果RecyclerView没有正确分离或者释放,那么onDetachedFromRecyclerView就不会被调用。
2024-06-25 14:25:15
1117
原创 关于viewpage + FragmentPagerAdapter 当调用 notifydatasetchanged 造成其中的fragment内存泄漏
ViewPager 和 FragmentPagerAdapter 的使用中,调用 notifyDataSetChanged() 可能导致内存泄漏,这通常与 Android 系统管理 Fragment 的方式有关。为了深入理解这个问题,我们需要从 FragmentPagerAdapter 和 ViewPager 的源码入手。FragmentPagerAdapter 是 PagerAdapter 的子类,它主要用于管理少量静态页面。它的工作原理是将每个页面作为一个 Fragment 保存在内存中,并在需要时显示
2024-06-24 20:04:22
971
原创 kotlin入门之泛型
【码上开学】Kotlin 的泛型在学习kotlin 泛型之前我们先来回顾一下关于Java的泛型基础吧。说道泛型,我们可能最常用的就是在三大集合中去使用。泛型将具体的类型泛化,编码的时候用符号来值代类型,在使用时再确定他的类型。因为泛型的存在,我们可以省去强制类型转化。泛型是跟类型相关的,那么是不是也能使用与类型的多态呢?场景一://多态,因为Button是TextView的子类,向上转型TextView textView=new Button(context); List<Bu
2020-09-16 22:46:02
478
原创 Android实现亮屏后弹出一个Activity
首先我们需要设置权限<uses-permission android:name="android.permission.WAKE_LOCK" />然后动态注册广播: IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_SCREEN_ON); filter.addAction(Intent.ACTION_SCREEN_OFF); registerRe
2020-08-11 22:23:11
830
原创 关于Android中@SuppressLint(“NewApi“)、@TargetApi和@RequiresApi的区别
当我们使用一个较高版本才有的api时,编译器会报错,这个注解的作用仅仅是让编译通过,而并没有避免低版本的系统运行高版本的api的问题,在使用时我们需要自己判断版本号来使用不同的api。 目前官方建议使用@RequiresApi。@RequiresApi:当我们对某个类或者方法使用这个注解时,如果我们需要在其他类中调用该类或者类中方法时,编译器会提示我们需要处理版本差异的判断。当我们查看该注解类的源码时,发现其注释有这么一段话:This is similar in purpose to the olde
2020-07-18 21:09:55
996
原创 关于在RecyclerView中使用多个EditText,出现的数据错乱问题
https://blog.youkuaiyun.com/qq_36097819/article/details/97389003
2020-06-01 23:51:05
1144
原创 笔记之Android架构组件-WorkManager
kotlinOptions { jvmTarget = 1.8 } // Kotlin + coroutines implementation "androidx.work:work-runtime-ktx:2.3.1"WorkManager的简单使用创建后台任务,并且实现具体的任务逻辑。配置后台运行任务运行条件和约束条件,并且构建后台任务请求将后天任务请求传入WorkManager.enqueue()中,系统会在合适的时间运行。1. 创建.
2020-06-01 23:45:28
421
原创 Android生成远程服务AIDL对应的java文件失败原因总结
在生成AIDL相对应的JAVA文件时总是生成空文件,后来找到原因是aidl文件中含有中文注释的原因,把中文注释去掉后java文件生成成功,经过测试有时候aidl文件中有部分中文注释不会导致java文件生成失败,但是生成成功的java文件中的中文注释也是乱码,设置了IDE编码和文件编码为UTF8后还是无法解决问题。所以最好关于aidl文件的注释还是用英文好一点。...
2020-05-28 22:51:49
388
原创 20.Flutter学习之路网络请求get、post
这里我们进行一个小知识点 的补充,在Dart中我们如果需要将map转为json我们可以使用json.encode()这个方法。同样将json串转为map,我们可以使用json.decode(source)示例如下 Map userInfo={ 'name':'小明', 'age':22 }; var a= json.encode(userInfo)...
2020-03-19 23:44:04
433
原创 19.Flutter学习之路Dialog种类
class DialogPage extends StatefulWidget { @override State<StatefulWidget> createState() { return _DialogPageState(); }}class _DialogPageState extends State<DialogPage> { _a...
2020-03-19 00:01:57
368
原创 18.Flutter学习之路日期和时间戳,以及日期组件
日期Flutter中获取当前日期可以使用DateTime.now()进行获取。now.millisecondsSinceEpoch可以获取到时间戳class DatePickerPage extends StatefulWidget{ @override State<StatefulWidget> createState() { return _DatePicker...
2020-03-18 22:20:40
1534
原创 17.Flutter学习之路常用表单TextField、CheckBox等组件
TextField常见属性:属性描述maxLines将文本框改为多行文本框,默认是单行onChanged文本框改变的时候触发的时间decorationhintText类似于EditText中hint属性。border 边框线,配合OutlineInputBorder使用、labelText:label的名称、labelStyle,配置label使用ob...
2020-03-11 23:15:18
588
转载 16.Flutter学习之路Widget的生命周期
Android Flutter:图文详解 组件Widget的生命周期类型在Flutter中Widget分为两种,一种是有状态的Widget(StatefulWidget),一种是无状态的Widget(StatelessWidget)。关于有状态与无状态的详解请看10.Flutter学习之StatefulWidget有状态组件Widget生命周期从StatefulWidget.create...
2020-03-11 22:09:29
156
原创 15.Flutter学习之路按钮组件系列
Flutter中有很多Button组件,例如RaisedButton、FlatButton、IconButtton、OutlineButton、ButtonBar、FloatingActionButton等。RaisedButton:凸起的按钮,其实就是Material Design风格的Button.FlatButton:扁平化的按钮OutlineButton:线框按钮ButtonBar...
2020-03-11 22:06:59
288
1
原创 14.Flutter学习之路Drawer侧边栏以及侧边栏内容布局
Drawer参数描述child子组件elevationsemanticLabelDrawerHeader参数描述decoration设置顶部背景颜色child配置子元素padding内边距margin外边距其使用为class Tabs extends StatefulWidget{ final...
2020-03-07 15:51:02
634
原创 13.Flutter学习之路AppBar实现顶部tab
AppBar属性描述leading在标题前面显示一个控件,在首页通常显示引用logo,在其他界面则是返回键title标题,通常显示当前页面的标题文字,可以放组件actions通常使用IconButton来表示,可以放按钮组bottom通常会放TabBar,在标题下面显示一个Tab导航栏backgroundColor导航背景颜色iconT...
2020-03-05 23:13:06
1019
转载 线程池中的线程增长与回收策略
学习自:漫画:聊聊线程池中,线程的增长/回收策略今天在微信推送时看到这么一篇文章,刚好回顾一下之前学习的线程池知识。线程池为了避免系统频繁的创建和销毁线程,我们可以将创建的线程进行复用。创建线程变成了从线程池获取空闲的线程,关闭线程变成了向池子中归还线程。线程池的好处第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗第二:提高响应速度。当任务完成时,任务可以不需要...
2020-03-05 22:06:27
2069
原创 13.Flutter学习之路由替换、返回根路由
路由替换将我们现在页面替换成我们想要界面Navigator.of(context).pushReplacementNamed('/registersecond');//其中的参数就是命名路由中的key,也就是我们想要呈现的界面返回根路由即将我们的栈内的路由全部替换。 Navigator.of(context).pushAndRemoveUntil( ...
2020-03-04 23:17:38
484
原创 12.Flutter学习之路由即Android上的页面跳转
Flutter中的路由Flutter中的路由通俗来讲就是页面跳转,在Flutter中通过Navigator组件管理路由导航。并且提供了管理堆栈的方法,如:Navigator.push和Navigator.popFlutter提供了两种配置路由跳转的方式:1、基本路由 2、命名路由Flutter中的基本路由的使用...
2020-03-04 22:25:23
1036
原创 11.Flutter学习之BottomNavigationBar自定义底部导航栏,以及页面切换
BottomNavigationBarBottomNavigationBar是底部导航栏,可以让我们定义底部tab切换,bottomNavigationBar是之前讲到的Scaffold组件的参数常见属性:属性名说明itemsList<BottomNavigationBar>底部导航栏集合iconSizeicon大小currentIndex默...
2020-02-29 23:06:05
702
原创 10.Flutter学习之StatefulWidget有状态组件、页面绑定数据、改变数据
StatelessWidgetStatelessWidget:无状态的widget,适用于我们描述用户界面不依赖对象中的配置信息时。例如:使用ImaegView/UIImageView来显示Logo,Logo在运行时不会改变,所以可以使用StatelessWidgetStaefluWidget如果遇到HTTP网络请求或者用户交互接受数据后动态更改UI,则必须使用StatefluWidget并...
2020-02-29 18:22:10
1578
原创 9.Flutter学习之Wrap组件
Wrap组件可以实现流布局,单行的Wrap跟Row表现几乎一样,单列的Wrap变现与Column一致,但是Row与Column都是单行单列的,Wrap不一样,mainAxis(主轴)上控件不足时,则向crossAxis(次轴)去扩展显示。属性说明direction主轴的方向,默认水平alignment主轴的对齐方式spacing主轴方向上的间距text...
2020-02-29 16:42:58
336
原创 8.Flutter学习之AspectRatio、Card组件
AspectRatioAspectRatio的作用是根据设置调整子元素child的宽高比AspectRatio首先会在布局限制条件允许的范围内尽可能的扩展,widget的高度是由宽度和比率确定的,按照固定比例去尽量占满区域。...
2020-02-29 15:19:36
733
原创 7.Flutter学习之Stack层叠组件、Stack与Align Stack 与Positioned实现 RelativeLayout
笔录Flutter(五)布局系列:Stack层叠组件、Stack与Align Stack 与Positioned实现 RelativeLayout相比学习过Android的同学们应该都清楚什么是RelativeLayout。这里就不进行解释了。直接看内容吧。Stack(层叠组件)属性说明alignment配置所有子元素的显示位置children子组件Sta...
2020-02-21 17:07:19
681
原创 6.Flutter学习之Padding,Row,Column,Expanded组件
参考博客:笔录Flutter(五)布局系列:Row、Column、Flex、Expanded 常用属性、使用https://blog.youkuaiyun.com/huyongl1989/article/details/83745871https://blog.youkuaiyun.com/gzx110304/article/details/101627286Padding组件因为Flutter中有很多Widg...
2020-02-21 13:56:49
1648
原创 5.Flutter学习之GridView组件
学习自:Dart Flutter教程_Dart Flutter入门实战视频教程-2019年新出.GridView网格布局方法参数介绍。名称类型说明scrollDirectionAxis滚动方法paddingEdgeInsetsGeometry内边距reversebool组件反向排序crossAxisSpacingdouble垂直子Wid...
2020-02-11 17:31:43
225
原创 4.Flutter中的ListView的用法。
ListView参数认知列举一下ListView常用的参数:参数名参数说明scrollDirectionAxis.vertical竖向滑动,Axis.horizontal 横向滑动padding表示内边距reverse组件反向排序childrenl列表元素ListView的基本使用。void main() => runApp(MyAp...
2020-02-11 16:00:42
1055
原创 3.Flutter学习之Image组件
这里展示一下Image组件repeat平铺的效果未使用平铺效果:代码如下void main() => runApp(MyApp());class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title:...
2020-01-10 15:55:06
407
原创 2.Flutter学习之Container组件与Text组件详解
void main() => runApp(MyApp());class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( ...
2020-01-08 22:23:28
315
原创 关于从相册中获取图片,图片展示时被旋转了
调用Android系统相册功能后,三星手机照片被旋转了90度。经资料查询,这是由于三星手机拍照的图片旋转角度是90度,而其它手机是0度。这样思路就出来了:先查询被旋转了多少度,然后再旋转回来。public class DiyCommonUtil { private static String generateFileName() { return UUID.ran...
2020-01-08 19:11:26
415
原创 自定义View:关于实现竖直水果机滚动图片切换效果
效果如图所示:/** * 自动垂直滚动的ImageView */public class AutoVerticalScrollImageView extends ImageSwitcher implements ViewSwitcher.ViewFactory { private Context mContext; //mInUp,mOutUp分别构成向下翻页的进出动...
2020-01-08 19:06:22
770
转载 Android Studio使用阿里云镜像地址代理,加速依赖资源下载
摘录自Android Studio配置阿里云镜像地址,加速依赖资源下载.背景平时安卓项目编译较慢,其中一个原因就是要下载依赖资源包比较慢。为了解决这个问题,可以配置阿里云镜像,加速下载。配置方法对特定项目生效,修改项目根目录下的build.gradle文件内容增加如下信息:maven { url 'http://maven.aliyun.com/nexus/content/groups...
2020-01-06 21:54:36
4920
转载 1.Flutter学习:Flutter目录结构、入口、Text组件、MaterialApp组件、Scaffold组件
学习自:Dart Flutter教程_Dart Flutter入门实战视频教程-2019年新出.Flutter目录结构我们来看一下Flutter中结构吧!android文件夹: 表示生成的Android的项目目录build文件夹:表示运行项目时生成的文件ios:表示ios的项目目录lib:存放Flutter相关代码,主要编写的代码就放在这个文件夹中。pubspec.yaml:表示...
2020-01-05 21:09:02
309
原创 关于 Arrays.asList()与Collections.shuffle()使用时的坑
今天使用Arrays.asList()这个方法碰见一个问题记录一下。引入:Java.util.Collections类下有一个静态的shuffle()方法,如下:1)static voidshuffle(List<?> list) 使用默认随机源对列表进行置换,所有置换发生的可能性都是大致相等的。2)static voidshuffle(List<?> ...
2019-12-30 19:31:33
901
原创 Android 官方屏幕适配之ScreenMatch
关于屏幕适配的方案有两种,一种是使用ScreenMatch,一种是使用[AndroidAutoSize]。(https://github.com/JessYanCoding/AndroidAutoSize)
2019-12-26 19:27:25
864
转载 Flutter报错之Waiting for another flutter command to release the startup lock解决方案
参考博客:https://blog.youkuaiyun.com/u010358168/article/details/84826707打开Android 进行Flutter学习时,碰见AndroidStudio的顶部的模拟器选项一直是loading状态。然后打开cmd进行环境监测 flutter doctor然后提示我Waiting for another flutter command to r...
2019-12-23 16:32:11
427
原创 关于RecyclerView中RadioButton位置错乱
今天碰见一个问题在RecyclerView中,用状态去记录RadioButton是否被选中,结果状态被修改,导致状态错乱。程序效果图如下:错误代码如下: holder.rbn_pill.setOnCheckedChangeListener(((buttonView, isChecked) -> { //用于装填数据的Bean类 Remi...
2019-12-20 10:52:43
703
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人