正文
flutter切换主题颜色,flutter 切换页面
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
Flutter基础Widget之按钮(RaisedButton、FlatButton、OutlineButton,Ico...
1、Flutter 内置了多种 Button 控件,常见的有:- RaisedButton:凸起的按钮,其实就是 Android 中的 Material Design 风格的 Button,继承自 MaterialButton。- FlatButton:扁平化的按钮,继承自 MaterialButton。
2、基础控件就是常用的文字、按钮、图片等控件。 常用的基础控件有 Text、TextField、Button、Image 等。 功能控件 在Flutter 里还有一类控件,它们不影响 UI 布局,但带有一些特定的功能,比如页面跳转、事件监听、定义主题等。
3、Flutter中ThemeData与AppBar
iconTheme :设置appbar icon的颜色,appbar中icon的颜色会根据primaryColor的改变来确定自身的颜色,这里可以在iconTheme中指定icon的颜色。
这里的ThemeData即为控制App的主题,primarySwatch设置即可控制主题的各类颜色,但是这里的颜色是需要MaterialColor,但是纯色种的黑色和白色不是MaterialColor。所以不能设置primarySwatch为Colors.white。
默认的appbar下方会自带一个阴影效果。要去掉这个阴影的话需要在appbar中设置:核心的思想就是在column中使用expend包裹一次然后child使用listView,这样的话输入框被聚焦的时候键盘就会把页面顶上去。
SliverAppBar 控件,一个 MD 的 AppBar 。属性和 AppBar 类似,但做的效果比 AppBar 更加强大。相同的属性具体可以看 Flutter 之 Scaffold 控件 , 里面有 AppBar 控件的介绍。
很早在做Demo的时候就想改变下CheckBox的未选中状态的颜色,但是多是设置全局 ThemeData.unselectedWidgetColor 的颜色来设置。不过可以想到的就是一个App中如果有不同颜色的变态需求的话...。
Flutter踩坑之旅
这是库的地址 PhilipsHue/flutter_reactive_ble: Flutter library that handles BLE operations for multiple devices. (github.com)安卓主要的坑就是,在使用蓝牙功能的时候,需要获取定位权限,这个需要动态获取。
最近在做个flutter蓝牙功能,用的flutter_blue,在iOS上没有任何问题,照着例子写完,正常运行蓝牙功能,但是在安卓上发现各种坑,用这个插件首先是有些设备拿不到设备名称,还有就是读写特征和ios上拿到的也不一样。
项目环境是flutter开发的,然而阿里云官网并没有flutter相关的SDK,所以选择了集成的插件,这里踩过的坑不多叙述,开始正题。
记录下坑 一开始我就使用Future、async、await去做异步操作,以为这样能解决问题,经过一天研究发现他们都还在同一个线程里面,也就是UI线程,导致卡顿,这明显不是我们想要的异步加载数据。
开始寻找代替方案,Fluter像一束曙光引起了我的注意,之后一直关注并利用闲余时间开始探索。
最近在学习Flutter开发,在一次配置环境的过程中遇到了一个比较尴尬的坑,不过最终还是把这个坑给填掉了,再此进行一些分享,希望后来者遇到同样的问题时可以轻松的解决。
Flutter中InheritedWidget的使用
1、背景:flutter组件嵌套都很深,依次传递数据很麻烦,所以最好是能够跨组件传递。有三张跨组件的方式:InheritedWidget、Notification、Eventbus.是一种自上而下的传递数据的方式。
2、Flutter 中子类可以访问父类的所有变量和方法,因为Flutter没有public 和 private 之分 a、混合对象是一个类 b、一个类可以混合多个类 a、class 就是一个接口 b、class 被当做接口使用时,class的方法就是接口方法。
3、在使用的时候把子列表添加进去,并设置对应的GlobalKey。
4、didChangeDependencies调用次数:多次初始化时,在initState()之后立刻调用当依赖的InheritedWidgetrebuild,会触发此接口被调用。实测在组件可见状态变化的时候会调用build调用次数:多次初始化之后开始绘制界面。
5、addPostFrameCallback是StatefulWidget渲染结束之后的回调,只会调用一次,一般是在initState里添加回调:,一般在dispose中做一些取消监听、动画的操作,和initState相对使用。
Flutter笔记(三):设置白色状态栏
1、这种设置状态栏字体颜色的方法仅在手机浅色模式下有效,当用户选择深色(暗黑)模式后,该方法失效,状态栏字体颜色统一变为白色,不可更改。
2、brightness: Brightness.dark 状态栏图标与字体颜色为白色。 brightness: Brightness.light 状态栏图标与字体颜色为黑色。
3、造成该异常的原因是 Uri 默认使用 utf-8 解码超链接字符串,如果链接中包含非 utf-8 字符,就会造成上面的错误,相关 issue 见: issue #31621 。
Flutter暗黑模式
brightness: Brightness.dark,(白色)这种设置状态栏字体颜色的方法仅在手机浅色模式下有效,当用户选择深色(暗黑)模式后,该方法失效,状态栏字体颜色统一变为白色,不可更改。
在Flutter 里面我们不需要用 set 方法来更新 UI,可变控件是和状态绑定的,这就是 Flutter 的响应式 UI 编程。 在Android Q 和 iOS 13 里都加入了暗黑模式,我们也换一个暗黑主题来玩一下。
Release 模式 有如下特点:flutter run --release 命令会使用 Release 模式来进行编译,也可以给Android Studio进行配置:如果继续运行在模拟器上:profile模式 和 release模式 类似,但是会保留一些信息方便我们对性能进行检测。
因为flutter在release模式下的编译方式是AOT,iOS14+的系统是支持这种编译方式的,具体解决方案如下图 再运行就可以了。
因为本身做Android出身,就草船借鉴了下Android里的设置点个8下,进入开发者模式的套路。看到这,系不系心如明镜般?哈哈~ 摸着Android过河也是可以的。解决方案有了:我们设置了20次,点点点吧,减小误触几率。
关于flutter切换主题颜色和flutter 切换页面的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。