
flutter
zeddme
这个作者很懒,什么都没留下…
展开
-
flutter 组件——展示更多
介绍笔者自己封装的一个flutter组件,用于展示网格数据。可以传入默认展示的数目,网格的列数,展开和收起时显示的文字等。需注意的是,该组件需要传入一个itemBuilder函数,这个函数有context和index两个参数,即网格的子项构造函数。还需要传入一个包含所有网格数据的数组。网格的子项宽高比childAspectRatio也是可以传入的。效果图源码import 'package:flutter/material.dart';class MoreData extends Statef原创 2021-11-09 18:00:25 · 2233 阅读 · 0 评论 -
flutter页面内跳转——锚点效果的实现
问题描述点击一个按钮,跳转到页面对应的内容区域,类似于HTML中的target跳转,也就是锚点标签。在HTML中,此种效果的实现是不需要手动计算元素高度的,所以我在flutter实现的首先原则为不手动计算组件高度。解决方法一. 第三方插件1. indexed_list_view该组件需要创建controller,使用controller中的方法,根据索引值来跳转到ListView组件中的某一项。缺点是没有属性shrinkwrap,布局时需要注意。在其git社区,也有很多人请求官方加入这个属性。原创 2021-11-02 17:26:51 · 3113 阅读 · 0 评论 -
flutter GestureDetector添加点击效果
做法为把GestureDetector替换为InkWell,一个带onTap和child属性的组件,然后就有点击效果了。如果child是有背景色/图片的Container,可以将其替换为Ink,一个和Container用法类似的组件。原文链接原创 2021-10-27 12:23:14 · 3385 阅读 · 1 评论 -
json_mapper 自定义类型的List
问题笔者现在做的flutter项目,json序列化用到的插件是dart_json_mapper。当我在需要序列化的类中定义了一个字段:List<PayModel>? pays,编译运行,这个插件就报了错,错误信息大意为某某类型不是某某类型的子类型,或者不认识某某类型。查阅了官方文档,发现了这段话。大意为不能在需要序列化的类中定义自定义类型的List,如果必须这么做则需要手动转换。你可以定义如List<String>的基本类型列表。解决方法文档中同样也给出了解决方法。一种是原创 2021-10-26 18:18:37 · 615 阅读 · 0 评论 -
TabBarView 在 Column 中 报错
原因TabBarView组件占用父组件尽可能大的空间,这种布局一般外层都是可滚动的,类似SingleChildScrollView,而在Column中没有一个明确的高度约束,也就是说无限高,故报错。解决方法1. 定高直接了当地解决问题,但是有一个很大的缺点,TabBarView加载的组件可能是不同高度的,故预定的高度要取他们的最大高度,布局不好看。SingleChildScrollView( child: Column( children: [ MyTabBar(),原创 2021-10-26 18:00:11 · 1325 阅读 · 0 评论 -
Flutter 中圆角按钮,渐变色按钮
如图所示思路ElevatedButton组件,我在网上没有找到直接设置的圆角和渐变色背景的属性。笔者的思路是,将按钮的背景色和阴影去除,在其外包裹Container,设置外层容器的圆角和背景色即可。代码Container( width: 340, height: 49, //在此设置 decoration: BoxDecoration( borderRadius: BorderRadius.circular(9), gradient: const Lin原创 2021-10-22 15:30:55 · 3493 阅读 · 0 评论 -
Flutter 上滑加载以及下拉刷新
实现下拉刷新flutter中,已经给出了实现,咱们只需要给出回调即可。很多解释都在注释中,请不要忽略。如果你想要直接看到全部代码,请拉到最后。import 'dart:async';import 'package:dio/dio.dart';import 'package:flutter/material.dart';import 'package:flutter_demo/base/view.dart';import 'package:flutter_demo/common/my_f原创 2021-09-07 16:10:15 · 1116 阅读 · 2 评论 -
flutter中的EventBus
插件地址:event_bus用法定义事件类型,通常来说是定义类,可以在类中定义属性来传参class LoginSuccessEvent {}class WarningEvent { String msg; WarningEvent(this.msg);}在需要监听事件的页面initState阶段添加监听 void initState() { // TODO: implement initState super.initState(); bus.on原创 2021-08-26 12:28:29 · 341 阅读 · 0 评论