自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 浅析Flutter中的状态管理和Provider的使用

谈谈Flutter的状态管理和Porvidre的基本用法

2021-12-05 21:13:43 497

原创 flutter获取键盘高度

在build方法中调用:var keyboardSize = MediaQuery.of(context).viewInsets.bottom;键盘弹出时,即可获取到键盘高度。

2021-10-16 20:58:38 2761

原创 flutter自绘进度条

class VideoProgressBarController extends ChangeNotifier{ double progressBarValue = .0; updateProgressValue(double value){ progressBarValue = value; notifyListeners(); }}前言本文的记录如何用CustomPaint、GestureDetector实现一个进度条控件。首先需要说明的是flutter..

2021-10-08 22:14:30 1817

原创 animations 2.0.1 源码解读

animations 是一款flutter插件,提供了封装好的一些路由切换动画。最近闲来无事去看了一下它的代码,理解其关键部分代码,并实现一个精简版的animations插件。虽然不完善,但是总体思路还是对的。首先看OpenContainer类,关键部分是传入两个Widget,一个openBuilder是打开后要展示的页面,closeBuilder被点击之后能触发动画的控件。 @override Widget build(BuildContext context) { retur

2021-08-29 23:16:00 188

原创 flutter_inappwebview加载http请求时需要注意的问题

flutter_inappwebview加载http请求,非https时由于安全性或者其他问题。默认是无法加载的。需要一些额外的设置。根据官网的描述:Starting with Android 9 (API level 28), cleartext support is disabled by default。从安卓9开始,因为cleartext属性默认是不支持的,需要手动设置为可用状态。解决方法:在AndroidManifest.xml中添加android:usesClear

2021-08-19 23:29:56 934 2

原创 dart语言构造函数中存在异步方法时的处理方法

dart语言构造函数中如果存在异步方法,编程时如果不注意特殊处理的话,很容易使代码出现未定义行为。例如下面的代码:class MyComponent{ MyComponent() { init(); } init()async{ var ret = await _init(); print('$ret'); } _init(){ return Future.delayed(new Duration(seconds: 2), () {

2021-08-02 22:39:10 575

原创 使用compute而不是直接操作Isolate

由于dart 语言不支持多线程,在开发中我尝试过将耗时操作放在Isolate中。虽然能成功实现需求,但Isolate复杂的操作让代码显得十分臃肿,实在很影响心情。好在查阅一些资料后,发现可以使用compute创造Isolate,而不是自己管理Isolate。使用之后效果十分理想,在此记录一下。compute的使用非常简单,理论上超过毫秒的操作放到compute里面都是合适的,贴一个找到的例子:import 'package:flutter/foundation.dart';import 'dart

2021-07-14 21:02:16 251

原创 dart中late关键字的作用

Dart 2.12 添加了late关键字,他有两个作用:1)显式声明一个非空的变量,但不初始化如下,_temperature如果不加late关键字,类实例化时此值是不确定的,无法通过静态检查,加上late关键字可以通过静态检查,但由此会带来运行时风险。// Using null safety:class Coffee { late String _temperature; void heat() { _temperature = 'hot'; } void chill() {

2021-06-24 21:49:58 15699

原创 flutter布局技巧

(仅作备忘)使用AspectRatio设置固定比例的控件// 设置显示比例body: Column( childern: <Widget>[ Container( height: 150, child: AspectRatio( width: double.infinity,// 设置宽度 aspectRatio: 16/9, .

2021-06-22 20:45:43 167 1

原创 在flutter中通过MethodChannel调用java层的OpenGL函数渲染图形

引言在flutter中如果只是想简单地播放视频,可以使用flutter官方提供的video_player插件,或者其他第三方提供的插件。但是如果想在flutter

2021-06-13 00:13:38 3058 6

原创 flutter状态栏适配

首先看看flutter官方提供的状态栏默认适配方案 显然,只是简单地加一个模糊背景,显然不够美观,目前常见的app的状态栏应该是透明的,且字体颜色会随背景颜色变化。flutter中状态栏样式设置分局部设置与全局设置两种。设置全局状态栏样式首先import 'package:flutter/services.dart';然后在runApp后调用setSystemUIOverlayStyle()方法void main() { runApp(MyApp()); Sys..

2021-06-12 15:58:43 762 2

原创 Qt基础布局

主要使用QVBoxLayout、QGroupBox。#include "mainwindow.h"#include "ui_mainwindow.h"#include <QtWidgets>MainWindow::MainWindow(QWidget *parent) : QWidget(parent) //, ui(new Ui::MainWindow){ //ui->setupUi(this); //this->setWindowF

2021-06-08 20:32:00 154

空空如也

空空如也

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

TA关注的人

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