Flutter - 折叠面板

demo 地址: https://github.com/iotjin/jh_flutter_demo
代码不定时更新,请前往github查看最新代码

flutter 自定义折叠组件

  • 支持三种类型和两种展示效果
  • 可自定义title和被折叠的内容

效果图

请添加图片描述

请添加图片描述

示例

import 'package:flutter/material.dart';
import '/jh_common/widgets/jh_collapse_view.dart';
import '/project/configs/project_config.dart';class CollapseViewTestPage extends StatefulWidget {const CollapseViewTestPage({Key? key}) : super(key: key);@overrideState<CollapseViewTestPage> createState() => _CollapseViewTestPageState();
}class _CollapseViewTestPageState extends State<CollapseViewTestPage> {var _isFold = false;var _isFold2 = false;var _isFold3 = false;@overrideWidget build(BuildContext context) {return Scaffold(appBar: const BaseAppBar('JhCollapseView'),body: _body(),backgroundColor: KColors.dynamicColor(context, KColors.wxBgColor, KColors.kBgDarkColor),);}_body() {return ListView(children: [Column(children: [JhCollapseView(title: '标题', content: _testView()),JhCollapseView(title: '这是很长很长很长长很长很长很长很长很长很长很长很长很长很长的标题',titleStyle: TextStyle(color: Colors.white, fontSize: 13),arrowColor: Colors.white,headerColor: Color(0xFFA2BFEE),content: _testView(),),JhCollapseView(titleWidget: _titleW(),titleCrossAxisAlignment: CrossAxisAlignment.start,arrowColor: Colors.white,headerColor: Color(0xFFA2BFEE),content: _testView(),),JhCollapseView(titleWidget: _titleW2(),headerColor: Colors.white,content: _testView(),),TextButton(child: Text('点击更新折叠状态'),onPressed: () {setState(() {_isFold = !_isFold;});},),JhCollapseView(isFold: _isFold,title: 'isFold更新',content: _testView(),onChange: (isFold) {print('isFold:$isFold');setState(() {_isFold = isFold;});},),JhCollapseView(title: 'card样式',collapseStyle: JhCollapseStyle.card,content: _testView(),),JhCollapseView(title: '标题',collapseStyle: JhCollapseStyle.card,content: Container(child: Column(children: [separator(),_testView(),],),),),JhCollapseView(isFold: true,collapseStyle: JhCollapseStyle.card,// headerPadding: EdgeInsets.all(0),decoration: BoxDecoration(color: Colors.white,borderRadius: BorderRadius.circular(3),boxShadow: [BoxShadow(color: Colours.red, spreadRadius: 1.5, blurRadius: 1.5)],),titleWidget: _titleW2(),content: _testView(),),Container(margin: EdgeInsets.symmetric(horizontal: 10, vertical: 8),decoration: KStyles.cellBorderStyle,child: JhCollapseView(padding: EdgeInsets.all(0),margin: EdgeInsets.all(0),title: '标题',titleStyle: TextStyle(color: Colors.white),arrowColor: Colors.white,headerColor: Color(0xFFA2BFEE),content: Container(child: ListView.builder(shrinkWrap: true,physics: NeverScrollableScrollPhysics(),itemCount: 2,itemBuilder: (BuildContext context, int index) {return Container(color: Colors.yellow,child: ListTile(title: Text('title$index'),subtitle: Text('subtitle$index'),),);},),),),),JhCollapseView(title: '居中箭头card样式',isFold: true,collapseType: JhCollapseType.centerArrow,collapseStyle: JhCollapseStyle.card,titleWidget: _titleW2(),content: _testView(),),JhCollapseView(title: '居中箭头flat样式',isFold: true,collapseType: JhCollapseType.centerArrow,collapseStyle: JhCollapseStyle.flat,titleWidget: _titleW2(),content: _testView(),),JhCollapseView(isFold: _isFold2,title: _isFold2 ? '查看更多' : '收起',collapseType: JhCollapseType.seeMore,titleWidget: _titleW2(),content: _testView(),onChange: (isFold) {print('isFold2:$isFold');setState(() {_isFold2 = isFold;});},),JhCollapseView(isFold: _isFold3,title: _isFold3 ? '查看更多' : '收起',collapseType: JhCollapseType.seeMore,collapseStyle: JhCollapseStyle.card,hiddenDivider: true,titleWidget: _titleW2(),content: _testView(),onChange: (isFold) {print('isFold3:$isFold');setState(() {_isFold3 = isFold;});},),])]);}_testView() {return Container(color: Colors.yellow, height: 100);}_titleW() {return Row(mainAxisAlignment: MainAxisAlignment.spaceBetween,children: [Expanded(child: Row(// crossAxisAlignment: CrossAxisAlignment.start,children: [Flexible(child: Text('1212222222222222222222222222222222222222222')),SizedBox(width: 10),Container(padding: EdgeInsets.symmetric(horizontal: 4, vertical: 2),color: Colors.red,child: Text('自定义title', style: TextStyle(color: Colors.white, fontSize: 12)),),],),),// Icon(Icons.arrow_drop_down),],);}_titleW2() {return Container(child: Column(children: [Row(crossAxisAlignment: CrossAxisAlignment.start,children: [Text('Name:', style: KStyles.textBold15),SizedBox(width: 5),Expanded(child: Text('custom title widget')),],),SizedBox(height: 8),Row(crossAxisAlignment: CrossAxisAlignment.start,children: [Text('Code:', style: KStyles.textBold15),SizedBox(width: 5),Expanded(child: Text('123')),],),SizedBox(height: 8),Row(crossAxisAlignment: CrossAxisAlignment.start,children: [Text('test:', style: KStyles.textBold15),SizedBox(width: 5),Expanded(child: Text('1212222222222222222222222222222222222222222')),],),],),);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/318592.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot+websocket开发简单的在线群聊聊天web版本

springbootwebsocket开发简单的在线群聊聊天web版本&#xff01;近期在测试websocket插件的群聊功能。下面是一个简单的demo。分享给大家&#xff0c;亲测可以使用的。 1&#xff1a;首先是一个chat.html页面。代码如下&#xff1a; <!DOCTYPE html> <html lang"…

Linux的Shell脚本详解

本文目录 一、什么是 Shell 脚本文件 &#xff1f;二、编写Shell脚本1. 基本规则2. shell 变量&#xff08;1&#xff09;创建变量&#xff08;2&#xff09;引用变量&#xff08;3&#xff09;删除变量&#xff08;4&#xff09;从键盘读取变量&#xff08;5&#xff09;特殊变…

VMware安装ubuntun虚拟机使用桥接模式无法上网问题解决

问题&#xff1a;最近准备使用VMware虚拟机搭建k8s集群服务&#xff0c;因为需要在同一个网段下&#xff0c;我使用桥接的方式&#xff0c;我发现主机在使用有线连接时虚拟机网络连接正常&#xff0c;但是使用无线网就显示连接不上网络。 解决方法 一、查看网络连接&#xff…

MFC 列表控件删除实例(源码下载)

1、本程序基于前期我的博客文章《MFC下拉菜单打钩图标存取实例&#xff08;源码下载) 》 2、程序功能选中列表控件某一项&#xff0c;删除按钮由禁止变为可用&#xff0c;点击删除按钮&#xff0c;选中的项将删除。 3、首先在主界面添加一个删除参数按钮。 4、在myDlg.cpp 文件…

蓝桥杯练习系统(算法训练)ALGO-951 预备爷的悲剧

资源限制 内存限制&#xff1a;512.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 英语预备爷gzp是个逗(tu)比(hao)&#xff0c;为了在即将到来的英语的quiz中不挂科&#xff0c;gzp废寝忘食复习英语附录单词…

基于缓存注解的时间戳令牌防重复提交设计

文章目录 一&#xff0c;概述二&#xff0c;实现过程1、引入pom依赖2、定义缓存管理3、时间戳服务类4、模拟测试接口 三&#xff0c;测试过程1&#xff0c; 模拟批量获取2&#xff0c; 消费令牌 四&#xff0c;源码放送五&#xff0c;优化方向 一&#xff0c;概述 API接口由于…

PHP源码_最新Ai对话系统网站源码 ChatGPT+搭建教程+前后端

基于ChatGPT开发的一个人工智能技术驱动的自然语言处理工具&#xff0c;它能够通过学习和理解人类的语言来进行对话&#xff0c;还能根据聊天的上下文进行互动&#xff0c;真正像人类一样来聊天交流&#xff0c;甚至能完成撰写邮件、视频脚本、文案、翻译、代码&#xff0c;写论…

C++Day6作业

1、模板实现顺序栈 #include <iostream>using namespace std;template <typename T> class Stack {T* S; //数组int size;//栈容量int top; //栈顶元素下标 public://有参构造Stack(int size):S(new T[size]),size(size),top(-1){}//初始化时直接将栈顶元素下标设…

记一次古董级netapp存储更换故障硬盘全过程

1、案例背景 记一次某医院PACS存储NetApp FAS2554更换故障硬盘的过程。 这个netapp设备以前从未调试过&#xff0c;据客户说该设备上线也有快9年了&#xff0c;头一次故障硬盘。因为己经过保了&#xff0c;客户只是采购的硬盘&#xff0c;我这来免费服务了。。。 netapp调试…

LeetCode 110.平衡二叉树(Java/C/Python3/Go实现含注释说明,Easy)

标签 树深度优先搜索递归 题目描述 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡的二叉树定义为&#xff1a; 一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。 原题&#xff1a;LeetCode 110.平衡二叉树 思路及…

『跨端框架』Flutter环境搭建

『跨端框架』Flutter环境搭建 资源网站简介跨平台高性能发展历程跨平台框架的比较成功案例 环境搭建&#xff08;windows&#xff09;基础环境搭建Windows下的安卓环境搭建Mac下的安卓环境配置资源镜像JDKAndroid StudioFlutter SDK问题一问题二问题三修改项目中的Flutter版本 …

Android14之解决报错:libncurses.so.5与libtinfo.so.5缺少问题(二百零九)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

【数据库主从架构】

【数据库主从架构】 1. 什么是数据库的主从架构1.1 主从复制1.1.1 MySQL的主从主从复制技术三级目录 1. 什么是数据库的主从架构 随着公司业务线的增多&#xff0c;各种数据都在迅速增加&#xff0c;并且数据的读取流量也大大增加&#xff0c;就面临着数据安全问题&#xff0c;…

Spring Boot | Spring Security ( SpringBoot安全管理 )、Spring Security中 的 “自定义用户认证“

目录 : Spring Boot 安全管理 &#xff1a;一、Spring Security 介绍二、Spring Security 快速入门2.1 基础环境搭建 :① 创建Spring Boot 项目② 创建 html资源文件③ 编写Web控制层 2.2 开启安全管理效果测试 :④ 添加 spring-boot-starter-security 启动器⑤ 项目启动测试 三…

Vue Cli脚手架—安装Nodejs和Vue Cli

一&#xff0c;Vue Cli 文档地址: https://cli.vuejs.org/zh/ 二&#xff0c;.环境配置&#xff0c;搭建项目 1.安装node.js 2.下载 node.js10.16.3 地址: https://nodejs.org/en/blog/release/v10.16.3/ 3.安装 node.js10.16.3 , 直接下一步即可, 安装到 d:\program\nodejs…

【kettle006】kettle访问华为openGauss高斯数据库并处理数据至execl文件

1.一直以来想写下基于kettle的系列文章&#xff0c;作为较火的数据ETL工具&#xff0c;也是日常项目开发中常用的一款工具&#xff0c;最近刚好挤时间梳理、总结下这块儿的知识体系。 2.熟悉、梳理、总结下华为openGauss高斯数据库相关知识体系 3.欢迎批评指正&#xff0c;跪谢…

浅论汽车研发项目数字化管理之道

随着汽车行业竞争不断加剧&#xff0c;汽车厂商能否快速、高质地推出贴合市场需求的新车型已经成为车企竞争的重要手段&#xff0c;而汽车研发具备流程复杂、专业领域多、协作难度大、质量要求高等特点&#xff0c;企业如果缺少科学健全的项目管理体系&#xff0c;将会在汽车研…

低空经济+飞行汽车:eVTOL技术详解

低空经济是以各种有人驾驶和无人驾驶航空器的各类低空飞行活动为牵引&#xff0c;辐射带动相关领域融合发展的综合性经济形态。它广泛体现于第一、第二、第三产业之中&#xff0c;在促进经济发展、加强社会保障、服务国防事业等方面发挥着日益重要的作用。 飞行汽车&#xff0c…

SpringBoot配置HTTPS及开发调试

前言 在实际开发过程中&#xff0c;如果后端需要启用https访问&#xff0c;通常项目启动后配置nginx代理再配置https&#xff0c;前端调用时高版本的chrome还会因为证书未信任导致调用失败&#xff0c;通过摸索整理一套开发调试下的https方案&#xff0c;特此分享 后端配置 …

“酒店涨价?火车票难求?看‘房贷自由族’如何玩转最燃五一“

今年五一&#xff0c;很可能是近几年旅游最疯狂的一年——虽然酒店价格狂飙好几倍&#xff0c;也抢不到火车票&#xff0c;人们却依然有着疯狂的出游和消费欲望。 ​最直接的原因大概是很多人离开了房贷&#xff0c;活明白了吧。就拿我身边的一些房奴们来说&#xff0c;已经陆…