自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

乘着风游荡在蓝天边

记录工作学习的点点滴滴

  • 博客(22)
  • 资源 (2)
  • 问答 (2)
  • 收藏
  • 关注

原创 利用rxjava实现监听EditView里的文字在规定时间间隔不变后进行联想搜索

当EditView输入的内容变化停止几秒钟之后再去后进行搜索,debounce:防抖当一个事件发送出来之后,在约定时间内没有再次发送这个事件,则发射这个事件,如果再次触发了,则重新计算时间。switchMap :当源Observable发射一个新的数据项时,如果旧数据项订阅还未完成,就取消旧订阅数据和停止监视那个数据项产生的Observable,开始监视新的数据项。如果都是在同一个线程里跑的话,那么该操作符与ContactMap无异;只有在不同的线程里跑的时候,即线程方案为newThread的时

2020-07-03 12:20:28 394

原创 Flutter 四种方式实现页面切换后保持原页面状态

前言:在 Flutter 应用中,导航栏切换页面后默认情况下会丢失原页面状态,即每次进入页面时都会重新初始化状态,不仅增加额外开销,而且体验差。使用IndexedStack实现IndexedStack继承自Stack,它的作用是显示第index个child,其它child在页面上是不可见的,但所有child的状态都被保持,所以这个Widget可以实现我们的需求,我们只需要将现在的body...

2019-07-15 10:02:24 2538

原创 解决Flutter使用 Scaffold + Tabbar + TabbarView保存页面状态问题

Flutter切换tab后默认不会保留tab状态 ,Flutter中为了节约内存不会保存widget的状态,widget都是临时变量。当我们使用TabBar,TabBarView是我们就会发现,切换tab,initState又会被调用一次。为了让tab一直保存在内存中不被销毁。在需要保持页面状态的子页State中,继承AutomaticKeepAliveClientMixin并重写wantKee...

2019-07-12 17:08:15 1769

原创 Flutter去掉AppBar避免body溢出到状态栏

没有AppBar的Flutter,如果不在Scaffold中使用AppBar会发现默认是沉浸式。预留出状态栏的高度方法Scaffold( appBar: PreferredSize( preferredSize:Size.fromHeight(MediaQuery.of(context).size.height * 0.07), child:Saf...

2019-06-27 16:53:18 4556

原创 dart关于函数的语法

目录function 中=>的用法Optional parameters(可选参数)Default parameter values(默认参数值) function 中=>的用法 isNoble(atomicNumber) { return _nobleGases[atomicNumber] != null;}bool isNoble(int ...

2019-06-14 14:43:42 134

原创 flutter开发常见问题

Error on line 6, column 5 of pubspec.yaml: A dependency may only have one source.sdk: flutter^^^^^^^^^^^^^;方法:dio要引入要对齐2.Waiting for another flutter command to release the startup lock。方法:...

2019-06-13 14:56:42 480

原创 Dagger2 进阶(五)

懒加载Lazy和强制重新加载Provider//懒加载@InjectLazy<Person> lazyStudent;//强制重新加载@InjectProvider<Person> providerStudent;使用的时候用lazyStydent.get();Student s=lazyStydent.get();Student s1=providerStudent.get();lazy

2017-05-10 11:32:28 242

原创 Dagger2 进阶 (四)

组织ComponentComponent之间的关系有 依赖(dependencies),包含(SubComponent),继承方式(extends)。我们在一个项目之中不可能只使用一个Component连接器来注入对象完成注入工作,一般除了一个全局的ApplicationComponent之外,还有一些作用域在Activity/Fragment的Component,Component之间存在依赖关系

2017-05-09 17:57:47 303

原创 Dagger2 进阶 (三)

Scope(作用域)@Scope@Documented@Retention(RUNTIME)public @interface Singleton{}可以看到定义一个Scope注解,必须添加以下三部分: @Scope :注明是Scope @Documented :标记在文档 @Retention(RUNTIME) :运行时级别Dagger2可以通过自定义Scope注解,来限定通过M

2017-05-08 18:17:29 236

原创 Dagger2 进阶(二)

@Qulifier 和@Named在用Module的时候是根据返回类型来确定为谁提供依赖的,当某个对象需要注入依赖时,Dagger2就会根据Module中标记了@Provide的方法的返回值来确定由谁为这个变量提供实例。如果有两个一样的返回类型,Dagger2就会无法区分。我们把这种场景叫做依赖迷失,见名知意,Dagger这时候就不知道用谁来提供依赖,自然就迷失了。所以我们引入了@Qulifier这

2017-05-08 17:08:31 239

原创 Dagger2 基础 (一)

最简单的应用配置环境在根gradle中dependencies { … // 其他classpath classpath ‘com.neenbedankt.gradle.plugins:android-apt:1.8’ //添加apt命令 } 在App.gradle中dependencies { compile ‘com.google.dagger:dagge

2017-05-05 17:34:42 285

原创 textview不同颜色字体点击事件图片2

spannableString和html实现textview设置不同颜色字体点击事件简单用法点这里1、SpannableString、SpannableStringBuilder与String的关系 首先SpannableString、SpannableStringBuilder基本上与String差不多,也是用来存储字符串,但它们俩的特殊就在于有一个SetSpan()函数,能给这些存储的Str

2017-04-25 11:15:21 288

原创 Java中final、finally、finalize的区别

**Java中final、finally、finalize的区别**1.final关键字定义变量,包括静态的和非静态的。定义方法的参数。定义方法。定义类。我们依次来回顾一下每种情况下final的作用。如果final修饰的是一个基本类型,就表示这个变量被赋予的值是不可变的,即它是个常量;如果final修饰的是一个对象,就表示这个变量被赋予的引用是不可变的。这里需要提醒大家注意的是,不可改变的只

2017-03-28 16:53:16 254

原创 static 静态修饰符

static 静态修饰符  在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的。static修饰符表示静态的,在类加载时Jvm会把它放到方法区,被本类以及本类的所有实例所共用。在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间。如果一个被所有实例共用的方法被申明为static,那么就可以节省空间,不用每个实例初始化的时候都被分配到内存。java类被加载过程类装载器把一个类装

2017-02-16 16:45:53 401

原创 Android代码点亮屏幕并且解锁

//判断屏幕是否处于唤醒状态if (!PMUtils.isScreenOn(AppApplication.getAppContext())){ //唤醒屏幕 PMUtils.wakeAndUnlock(AppApplication.getAppContext());}工具类public class PMUtils { public static boolean isScreen

2016-12-28 16:44:30 802

原创 app:clean classes Exception

Error:Execution failed for task ‘:app:clean’. Unable to delete directory: C:\Users\ayue\Desktop\driver\app\build………….解决方案:allprojects { repositories { jcenter() } task clean(type

2016-11-17 14:20:33 206

原创 android开发解决设置铃声无效问题

最近公司用到了设置自定义铃声问题,然后再网上找了一大堆文章,都是复制过来复制过去,最后发现没有一个好使的 比如`//设置–铃声的具体方法 public void setMyRingtone(String path) { File sdfile = new File(path); ContentValues values = new Co

2016-11-03 15:57:43 1727

原创 Android中Java和JavaScript交互 Android原生和html交互

1.WebView开启JavaScript脚本执行WebSettings settings = webView.getSettings(); settings.setJavaScriptEnabled(true);2.WebView设置供JavaScript调用的交互接口。 webView.addJavascriptInterface(new JsInteration(), "andr

2016-07-14 14:11:00 482

原创 Android NDK(二)最最简单的方法利用NDK实现MP3录音

首先了解到调用android原生的录音无法生成MP3格式,其次java无法实现对文件的转码(个人见解),所以采用libmp3lame把AudioRecord音频流直接转换成MP3格式。这里采用的是最新的lame-3.99.5.tar。可以去Lame官网下载,博文最后也有CSDN下载地址。官网地址:http://lame.sourceforge.net/如果要自己一步一步实现,对于不熟悉jni开发的

2016-07-12 16:47:00 2415 2

原创 Android NDK开发(一)环境搭建

关于ndk的开发流程,对于Windows环境下NDK的开发,如果使用的NDK是r7之前的版本,必须要安装Cygwin才能使用NDK。而在NDKr7开始,Google的Windows版的NDK提供了一个ndk-build.cmd的脚本,这样,就可以直接利用这个脚本编译,而不需要使用Cygwin了。只需要为Eclipse Android工程添加一个Builders,而为Eclipse配置的builde

2016-07-06 18:05:31 400 2

原创 textview设置多种不同的字体颜色和点击事件

最近项目需要用到textview为特定字符设置不同的颜色,如果用不同的控件拼起来的话一行也许没有问题,但是如果换行的话效果就不理想了就像qq空间回复品论的效果,昵称和内容文字颜色不一样,点击事件也不一样。目前我找到两张方法,效果一样。想用哪种看个人喜好。1,使用html格式“ String html = “看这里,测试下划线、斜体字、红色字的格式”; tv.setText(Html.fro

2016-05-06 16:05:38 4390 2

原创 android 读取,清除缓存通用于所有手机 解决空指针

之前公司项目需要实现读取本地apk缓存和清除apk缓存的功能,果断百度之后就加到项目中,在三星 note,galaxy 华为 等等基本没有问题。但是在小米手机测试时当本地有缓存时 可以清除成功,当本地缓存为0,或者已经清除一次之后再次点击清除程序就会崩溃,查看日志报空指针错误。想了半天没有找到好的避免办法,最后想到了抛异常,改进代码如下。目前测试没有任何问题。*首先贴上关键代码*//利用递归读取

2016-04-12 18:38:22 771

AndroidMp3Recorder

详细内容请参考http://blog.csdn.net/qq_32687703/article/details/51890437

2016-07-12

AndroidMp3Recorder.zip

利用ndk实现录音成MP3格式,已经写好接口和录音工具

2016-07-12

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除