- 博客(15)
- 收藏
- 关注
原创 Flutter动态化框架Kraken中C同步调用Dart实现原理
Flutter中使用dart:ffi Dart同步调用C是官方已经支持的。但是C调用Dart官方并没有说怎么实现,网上也找不到相关的实现。 据说阿里已经实现了C调用Dart的方法,并且已经申请了专利,在Kraken项目中开源了。迫不及待的看了下源码。下面进行总结下。首先看注册方法(Dart层),总体来说就是把要暴露的Dart方法地址通过ffi传给C Pointer是本机C内存的指针, _dartNativeMethods是一个数组,用于存放dart 方法的地址void registerDartMe
2021-04-23 17:40:11
1003
1
原创 Flutter GetX 状态管理在BottomSheet中Controller未销毁问题定位
在BottomSheet中使用Obx方式做状态管理,发现Controller未销毁掉。return Obx(() { return PageStateManager( () { return getContent(context); }, state.loadState.value, errorCode: state.errorCode.value, errorMsg: state.erro
2021-04-21 22:12:20
3708
1
原创 Flutter GetX在Dialog中跳转异常问题定位
问题描述:在Dialog/BottomSheet中点击按钮调用Get.toNamed('PageB'),跳转到PageB后,点击返回,在点击按钮Get.toNamed('PageB')无法跳转问题分析:经过断点调试发现问题出在下图page == currentRoute,GetX认为你重复跳转页面了,所以不再跳转。解决方法就是Get.toNamed('PageB', preventDuplicates:false),加上preventDuplicates = true。但是为什么在页
2021-04-19 20:02:53
2639
1
原创 Flutter 金额格式化
今天产品需要将金额格式化100显示100.0010000显示10,000.00百度了下发现用"#,##0.00"可以实现 final oCcy = new NumberFormat("#,##0.00", "en_US");那么0和#有什么区别呢?#表示这一位有意义的时候才显示,0表示不管什么时候这一位都显示#,###.## 如果用这个,则输入为0时候显示为 0,输入为1显示为1,不符合我们0.00的预期#,###.00 如果用这个,则输入为0时候显示为 .00 不符合.
2021-04-14 19:44:20
1686
原创 Flutter DropdownButton
Flutter 使用DropdownButton时,value使用自定义类的对象时发生如下异常:There should be exactly one item with [DropdownButton]'s value: Instance of 'City'. Either zero or 2 or more [DropdownMenuItem]s were detected with the same value'package:flutter/src/material/dropdown.da
2021-01-14 19:51:35
1242
原创 Provider实现原理及个人理解
Flutter provider主要是用了InheritedWidget来共享数据,并可控制是否监听数据变化dependOnInheritedWidgetOfExactType监听数据变化getElementForInheritedWidgetOfExactType 不监听数据变化context.read<T>() 获取model对象并不监听数据变化context.watch<T>() 获取model对象并监听数据变化InheritedWidget rebu.
2020-12-21 18:52:19
923
原创 CoordinatorLayout与AppBarLayout实现顶部悬停效果
CoordinatorLayout与AppBarLayout实现顶部悬停效果
2019-07-27 00:30:55
934
原创 Intent妙用
Intent通常我们用于跨activity传递数据,其实也可以在同个页面保存数据。如果我们用map存储的话,value必须是object类型,才能适应不同类型,如果用Intent的话就不用啦,直接可以获取某种类型的数据...
2018-10-22 21:05:08
134
原创 module manifest冲突
在主工程manifest中<application tools:replace="android:allowBackup" android:allowBackup="false"模块中的libs无法依赖到解决方法repositories { flatDir { dirs '../weex/libs' } } ...
2018-09-07 19:02:56
304
原创 android 一直依赖方式
module中implementation rootProject.ext.rxAndroid项目根build.gradlerxJava = 'io.reactivex.rxjava2:rxjava:2.1.17'
2018-08-22 18:24:45
149
原创 tinker 8.0系统上bug定位
发布tinker碰到如下问题,并且只在8.0系统上发生Shared library "/data/app/*******-Z5ZCyS3XSWi-YuHiG2CFGQ==/lib/arm/libbridge.so" already opened by ClassLoader 0x2b7; can't open in ClassLoader 0xff912a74 ****.jni.JNIUtil...
2018-08-11 22:26:27
1099
原创 gradle全局代理设置
C:\Users\***\.gradle\gradle.properties#systemProp.https.proxyPort=1080#systemProp.http.proxyHost=127.0.0.1#systemProp.https.proxyHost=127.0.0.1#systemProp.http.proxyPort=1080
2018-08-10 22:08:07
1600
原创 解决AndroidStudio中依赖的module debugCompile 配置不生效问题
在主module中releaseCompile project(path:':tools', configuration:'release')debugCompile project(path:':tools', configuration:'debug') 在依赖的module中android { publishNonDefault true} ...
2018-08-08 17:55:31
3172
原创 flutter学习之图片显示
flutter图片资源可以放在项目中的任意文件夹下面,之后需要再pubspec.yaml文件夹中add这个图片的目录框框中图片a在项目根目录的assets文件夹下该文件夹下创建之文件夹n.0x表示图片的倍率 显示一张本地图片class MyApp extends StatelessWidget { @override Widget build(BuildConte...
2018-07-26 21:03:00
5113
原创 android webview 网络请求拦截
最近接到一个需求,需要拦截webview的网络请求,通过okhttp代发通过webview设置WebViewClient,重写如下方法@Overridepublic WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) { return null;}这时候碰...
2018-07-20 23:51:59
6626
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人