当前位置: 首页 > wzjs >正文

青岛做网站企业排名如何做网站的推广

青岛做网站企业排名,如何做网站的推广,产品设计作品集欣赏,新媒体h5是什么简介 flutter_slidable 是一个用于创建可滑动列表项的 Flutter 插件,它允许用户通过滑动来显示隐藏的操作按钮,比如删除、分享等功能。 安装 在 pubspec.yaml 中添加依赖(并运行 flutter pub get): dependencies:fl…

简介
flutter_slidable 是一个用于创建可滑动列表项的 Flutter 插件,它允许用户通过滑动来显示隐藏的操作按钮,比如删除、分享等功能。
请添加图片描述

安装
在 pubspec.yaml 中添加依赖(并运行 flutter pub get):

dependencies:flutter_slidable: ^4.0.0

基本使用

  1. 导入包
import 'package:flutter_slidable/flutter_slidable.dart';
  1. 基本结构
    Slidable 的基本结构包含以下几个主要部分:
Slidable(key: ValueKey(item), // 唯一标识endActionPane: ActionPane( // 滑动操作面板motion: ScrollMotion(), // 滑动动画children: [ // 操作按钮列表SlidableAction(...),SlidableAction(...),],),child: ListTile(...), // 主要内容
)
  1. 完整示例
    下面是一个结合 TabBar 的完整示例:
import 'package:flutter/material.dart';
import 'package:flutter_slidable/flutter_slidable.dart';void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});@overrideWidget build(BuildContext context) {return MaterialApp(title: 'Slidable TabBar Demo',theme: ThemeData(colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue), useMaterial3: true, ),home: const MyHomePage(),);}
}class MyHomePage extends StatefulWidget {const MyHomePage({super.key});@overrideState<MyHomePage> createState() => _MyHomePageState();
}class _MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin {late TabController _tabController;final List<String> _tabs = ['Tab 1', 'Tab 2', 'Tab 3'];final List<List<String>> _items = [List.generate(20, (index) => 'Item 1-${index + 1}'),List.generate(20, (index) => 'Item 2-${index + 1}'),List.generate(20, (index) => 'Item 3-${index + 1}'),];@overridevoid initState() {super.initState();_tabController = TabController(length: _tabs.length, vsync: this);}@overridevoid dispose() {_tabController.dispose();super.dispose();}@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: const Text('Slidable TabBar Demo'),bottom: TabBar(controller: _tabController,tabs: _tabs.map((String tab) => Tab(text: tab)).toList(),),),body: SlidableAutoCloseBehavior( // 自动关闭其他Slidablechild:  TabBarView(controller: _tabController,children: _items.map((tabItems) => KeepAliveListView(items: tabItems)).toList(),),),);}
}class KeepAliveListView extends StatefulWidget {final List<String> items;const KeepAliveListView({super.key,required this.items,});@overrideState<KeepAliveListView> createState() => _KeepAliveListViewState();
}// 保持状态的生命周期
class _KeepAliveListViewState extends State<KeepAliveListView>with AutomaticKeepAliveClientMixin { @overridebool get wantKeepAlive => true; // 必须实现@overrideWidget build(BuildContext context) {super.build(context); // 必须调用return ListView.builder(itemCount: widget.items.length,itemBuilder: (context, index) {return Slidable(key: ValueKey(widget.items[index]),endActionPane: // 滑动动作面板,可以自定义ActionPane(motion: const ScrollMotion(),children: [SlidableAction(onPressed: (context) {ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Delete ${widget.items[index]}')),);// 删除操作if (mounted){setState(() {widget.items.removeAt(index);});}},backgroundColor: Colors.red,foregroundColor: Colors.white,icon: Icons.delete,label: 'Delete',),SlidableAction(onPressed: (context) {ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Share ${widget.items[index]}')),);if (mounted){setState(() {widget.items.removeAt(index);});}},backgroundColor: Colors.blue,foregroundColor: Colors.white,icon: Icons.share,label: 'Share',),],),child: ListTile(title: Text(widget.items[index]),),);},);}
}

核心功能说明

  1. SlidableAutoCloseBehavior
    用于自动关闭其他已打开的滑动项:
SlidableAutoCloseBehavior(child: yourWidget,
)
  1. ActionPane
    定义滑动操作面板:
ActionPane(motion: ScrollMotion(), // 滑动动画效果children: [SlidableAction(onPressed: (context) {// 处理点击事件},backgroundColor: Colors.red,foregroundColor: Colors.white,icon: Icons.delete,label: 'Delete',),],
)
  1. 滑动方向
    Slidable 支持从左侧或右侧滑动:
    • startActionPane: 从左侧滑动显示
    • endActionPane: 从右侧滑动显示
  2. 状态保持
    结合 AutomaticKeepAliveClientMixin 保持滑动列表状态:
class _KeepAliveListViewState extends State<KeepAliveListView>with AutomaticKeepAliveClientMixin {@overridebool get wantKeepAlive => true;@overrideWidget build(BuildContext context) {super.build(context); // 必须调用}
}

结语

通过本篇文章,相信你已经知道如何使用 flutter_slidable 插件,并轻松实现丰富的滑动交互功能。


感谢您的阅读和参与,HH思无邪愿与您一起在技术的道路上不断探索。如果您喜欢这篇文章,不妨留下您宝贵的赞!如果您对文章有任何疑问或建议,欢迎在评论区留言,我会第一时间处理,您的支持是我前行的动力,愿我们都能成为更好的自己!


文章转载自:

http://et2nLpgl.bzqnp.cn
http://m7SuCoKo.bzqnp.cn
http://I4DsgQTD.bzqnp.cn
http://6zmQAuG0.bzqnp.cn
http://khJCmGXW.bzqnp.cn
http://0xevee6Y.bzqnp.cn
http://eDVTHB20.bzqnp.cn
http://a5aljPyF.bzqnp.cn
http://kuDN4dFy.bzqnp.cn
http://o11MmD3P.bzqnp.cn
http://BBKwfVY6.bzqnp.cn
http://49uFNC9g.bzqnp.cn
http://u6M0BDtS.bzqnp.cn
http://CRbyryJ9.bzqnp.cn
http://kNK9WWY0.bzqnp.cn
http://eTldSMu6.bzqnp.cn
http://uRZKxTSp.bzqnp.cn
http://eCMDIrwY.bzqnp.cn
http://f5hYj7FK.bzqnp.cn
http://3v3Fz3jD.bzqnp.cn
http://1VuPU5dh.bzqnp.cn
http://bTPwGmXm.bzqnp.cn
http://xr0Sugj8.bzqnp.cn
http://PsJx3VwP.bzqnp.cn
http://7JZZNdO4.bzqnp.cn
http://hcThVQ9b.bzqnp.cn
http://Fq0s6hNw.bzqnp.cn
http://W2SjmsGq.bzqnp.cn
http://VIoxsDDA.bzqnp.cn
http://z5QvcWuX.bzqnp.cn
http://www.dtcms.com/wzjs/632605.html

相关文章:

  • 企业网站建设实训总结做网站的公司违约怎么处理
  • 网站页面打开速度无为县住房建设局网站
  • 如何建立网站是什么青岛网站搜索排名
  • 郑州的电子商城网站建设博客类网站源码
  • 有个专门做简历的网站叫网站建设知识学习心得
  • w3c网站开发影视公司联系方式
  • 关于服装的网站规划与设计垂直类网站怎么做推广
  • 做自己的网站vps搭建网站
  • 改成 响应式 网站关于室内设计的网站有哪些
  • 做试用网站的原理在线设计平台哪个好用
  • 做任务的正规网站网页微信怎么换行
  • 深圳正规制作网站让别人做网站需要注意什么
  • 徐州手机网站制作公司哪家好南宁东凯做网站的公司
  • 南宁市建设局网站html5网站素材
  • 自开发网站网页设计网站制作流程
  • 淘宝上的网站建设可信开源企业建站系统php
  • 百润网站建设泰安爆炸最新消息今天
  • 苏州企业网站开发wordpress分级标题
  • 免费网站建设平台 iis产品项目开发流程图
  • 响应式网站和传统网站网络推手公司怎么收费
  • c net做的网站化工行业网站
  • 网站建设实践百度收录域名
  • 大企业网站建设方案社保在哪个网站做增员
  • 微信营销网站(含html源文件)免费下载学校网站群建设思路
  • 做的网站需要什么技术宠物食品 中企动力提供网站建设
  • 网站建设的基本特点如何做企业第一管理人
  • 重庆的网站建设绍兴网站制作推广
  • discuz品牌空间网站电商软件什么品牌好
  • 天津免费建设网站广告设计专业分析
  • 手机代码网站有哪些问题高邮建设网站