Skip to content

Instantly share code, notes, and snippets.

View CaiJingLong's full-sized avatar
💭
I may be slow to respond.

Caijinglong CaiJingLong

💭
I may be slow to respond.
View GitHub Profile
@CaiJingLong
CaiJingLong / guide_mask.dart
Created July 8, 2019 13:06
添加一个半透明"引导"
import 'package:flutter/material.dart';
class Mask extends StatefulWidget {
final Function onTap;
final Rect rect;
const Mask({Key key, this.onTap, this.rect}) : super(key: key);
@override
_MaskState createState() => _MaskState();
}
@CaiJingLong
CaiJingLong / home_container.dart
Last active July 29, 2021 14:34
flutter 懒加载 切换保持状态
class HomeContainer extends StatefulWidget {
final List<Widget> children;
final int currentIndex;
const HomeContainer({
Key key,
this.children,
this.currentIndex,
}) : super(key: key);
@CaiJingLong
CaiJingLong / jpg-handle.dart
Created September 19, 2019 09:34
处理jpg格式的元数据, 后续会继续更新
import 'dart:async';
import 'dart:io';
main(List<String> arguments) async {
// final path = "timg.jpg";
// final path = "/Users/cai/Desktop/1CD83646CA9CF1C2B0F7364B341E8580.gif";
final path = "/Users/cai/Desktop/sxwphone.png";
final imgFile = File(path);
@CaiJingLong
CaiJingLong / base_provider.dart
Last active September 25, 2019 09:07
global_widget
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class BaseProvider extends ChangeNotifier {
RouteHelper get route => RouteHelper();
T getProvider<T>() {
return Provider.of<T>(route.navigatorKey.currentContext);
}
}
@CaiJingLong
CaiJingLong / get_uint8List.dart
Created October 12, 2019 08:13
从extended_image 的 editorKey中快速拿图片数据.
static Future<Uint8List> getImageFromEditorKey(
GlobalKey<ExtendedImageEditorState> editorKey) async {
Uint8List result;
final provider =
editorKey.currentState.widget.extendedImageState.imageProvider;
if (provider is AssetImage) {
ByteData byteData;
if (provider.package == null) {
byteData = await rootBundle.load(provider.assetName);
} else {
@CaiJingLong
CaiJingLong / day_of_month.dart
Created October 16, 2019 07:58
day of month
int dayOfMonth(int year, int month) {
return DateTime(year, month + 1, 1).subtract(Duration(days: 1)).day;
}
@CaiJingLong
CaiJingLong / ThrottleWrapper.dart
Created October 16, 2019 08:25
点击防抖动
import 'package:flutter/material.dart';
class ThrottleWrapper extends StatefulWidget {
final Duration throttleDuration;
final Widget child;
final Function onTap;
const ThrottleWrapper({
Key key,
this.throttleDuration,
@CaiJingLong
CaiJingLong / example.dart
Created October 24, 2019 03:00
Example of image_editor and extended_image.
import 'dart:typed_data';
import 'package:extended_image/extended_image.dart';
import 'package:flutter/material.dart';
import 'package:image_editor/image_editor.dart';
import 'const/resource.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@CaiJingLong
CaiJingLong / ReplyHandler.kt
Last active December 4, 2020 03:37
Flutter 调用以及返回的封装, 防止重复返回, 有锁版, 防止多线程重复返回的可能
import android.os.Handler
import android.os.Looper
import io.flutter.plugin.common.MethodCall
import io.flutter.plugin.common.MethodChannel
import java.util.concurrent.locks.ReentrantLock
import kotlin.concurrent.withLock
/// create 2019-11-27 by cai
class ReplyHandler(val call: MethodCall, private val result: MethodChannel.Result?) {
@CaiJingLong
CaiJingLong / build.gradle
Created December 21, 2019 13:50
阿里云 gradle maven仓库配置
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
maven{
url 'https://maven.aliyun.com/repository/google'
}
maven{
url 'https://maven.aliyun.com/repository/jcenter'
}
}