Flutter——TabBar组件(顶部Tab切换组件)
TabBar组件的常用属性:
属性 | 描述 |
tabs |
显示的标签内容,一般使用 Tab 对象,也可以是其他的Widget
|
controller
|
TabController 对象
|
isScrollable
|
是否可滚动
|
indicatorColor
|
指示器颜色
|
indicatorWeight
|
指示器高度
|
indicatorPadding
|
底部指示器的 Padding
|
indicator
|
指示器 decoration,例如边框等
|
indicatorSize
|
指示器大小计算方式,TabBarIndicatorSize.label 跟文字等宽,TabBarIndicatorSize.tab 跟每个 tab 等宽
|
labelColor
|
选中 label 颜色
|
labelStyle
|
选中 label 的 Style
|
labelPadding
|
每个 label 的 padding 值
|
unselectedLabelColor
|
未选中 label 颜色
|
unselectedLabelStyle
|
未选中 label 的 Style
|
TabBar的实现方式1(不常用)
- import 'package:flutter/material.dart';
- void main() {
- runApp(
- MaterialApp(
- home: DefaultTabController(
- length: 6,
- child: Scaffold(
- appBar: AppBar(
- title: Text("TabBarDemo"),
- bottom: TabBar(
- tabs: <Widget>[
- Tab(text: "热门"),
- Tab(text: "推荐"),
- Tab(text: "关注"),
- Tab(text: "收藏"),
- Tab(text: "新增"),
- Tab(text: "点赞"),
- ],
- ),
- ),
- body: TabBarView(
- children: <Widget>[
- Center(
- child: Text("这是热门的内容")
- ),
- Center(
- child: Text("这是推荐的内容")
- ),
- Center(
- child: Text("这是关注的内容")
- ),
- Center(
- child: Text("这是收藏的内容")
- ),
- Center(
- child: Text("这是新增的内容")
- ),
- Center(
- child: Text("这是点赞的内容")
- )
- ],
- ),
- ),
- ),
- )
- );
- }
TabBar的实现方式2(常用)
- import 'package:flutter/material.dart';
- void main() {
- runApp(MaterialApp(
- title: "TabBarWidget",
- home: MyApp(),
- ));
- }
- class MyApp extends StatefulWidget {
- @override
- _MyAppState createState() => _MyAppState();
- }
- class _MyAppState extends State<MyApp> with SingleTickerProviderStateMixin{
- TabController _tabController;
- @override
- void initState() {
- super.initState();
- _tabController = TabController(vsync: this,length: 6);
- }
- @override
- void dispose() {
- _tabController.dispose();
- super.dispose();
- }
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- appBar: AppBar(
- title: Text("顶部Tab切换"),
- bottom: TabBar(
- tabs: <Widget>[
- Tab(text: "热门"),
- Tab(text: "推荐"),
- Tab(text: "关注"),
- Tab(text: "收藏"),
- Tab(text: "新增"),
- Tab(text: "点赞"),
- ],
- controller: _tabController, // 记得要带上tabController
- ),
- ),
- body: TabBarView(
- controller: _tabController,
- children: <Widget>[
- Center(
- child: Text("这是热门的内容")
- ),
- Center(
- child: Text("这是推荐的内容")
- ),
- Center(
- child: Text("这是关注的内容")
- ),
- Center(
- child: Text("这是收藏的内容")
- ),
- Center(
- child: Text("这是新增的内容")
- ),
- Center(
- child: Text("这是点赞的内容")
- )
- ],
- ),
- );
- }
- }
Flutter——TabBar组件(顶部Tab切换组件)的更多相关文章
- AppBar 自定义顶部导航按钮 图标、颜色 以及 TabBar 定义顶部 Tab 切换
一.Flutter AppBar 自定义顶部按钮图标.颜色 leading 在标题前面显示的一个控件,在首页通常显示应用的 logo:在其他界面通常显示为返回按钮 title 标题,通常显示为当 ...
- Flutter AppBar 自定义顶部导航按钮 图标、颜色 以及 TabBar 定义顶部 Tab 切换
Flutter AppBar 自定义顶部按钮图 标.颜色 属性 描述 leading 在标题前面显示的一个控件,在首页通常显示应用 的 logo;在其他界面通常显示为返回按钮 title 标题,通常显 ...
- 19 Flutter 自定义AppBar 定义顶部Tab切换 底部Tab结合顶部Tab实现类似头条页面布局(27分36秒)
Flutter AppBar自定义顶部导航按钮图标.颜色以及TabBar定义顶部Tab切换. leading:在标题前面显示的一个控件,在首页通常显示应用的logo:在其他界面通常显示为付汇按钮. t ...
- react实现的tab切换组件
我有点想要吐槽,因为用原生的js实现起来挺简单的一个小东西,改用react来写却花了我不少时间,也许react的写法只有在复杂的web应用中才能体现出它的优势吧!不过吐槽归吐槽,对react这种优雅的 ...
- 微信小程序基于swiper组件的tab切换
代码地址如下:http://www.demodashi.com/demo/14010.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...
- vue2.0使用动态组件实现tab切换效果(vue-cli)
<template> <div> <div>#动态组件实现tab切换效果#</div><br><br><br> &l ...
- 简单的Tab切换组件
由于代码都有注释,所以不多加解释,大家都知道的.直接贴代码: 代码如下: /** * 简单的Tab切换 * 支持可配置项 如下参数 */ function Tab(){ this.config = { ...
- uniapp使用swiper组件做tab切换动态获取高度
swiper对高度进行了限制,所以说通常做出了tab切换的效果但是内容经常被截取掉???? 所以我在前端做了一个动态获取高度的功能 选项卡标题也就是tab切换的效果 选项卡内容区域的高度自适应 因为进 ...
- TabController定义顶部tab切换
前面通过DefaultTabController组件实现了AppBar里面的顶部导航切换,但是在项目中有数据请求,上拉加载更多等操作的时候,前面的写法,就不是很方便操作,因此,在flutter里面,还 ...
随机推荐
- 报错:HDFS IO error org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="/yk/dl/alarm_his":hdfs:supergroup:drwxr-xr-x
报错背景: CDH集成了Flume服务,准备通过Flume将kafka中的数据放到HDFS中, 启动Flume的时候报错. 报错现象: // :: INFO hdfs.HDFSDataStream: ...
- 常用OID(SNMP)
系统参数(1.3.6.1.2.1.1) OID 描述 备注 请求方式 .1.3.6.1.2.1.1.1.0 获取系统基本信息 SysDesc GET .1.3.6.1.2.1.1.3.0 监控时间 s ...
- Python - Django - 模板语言之自定义过滤器
自定义过滤器的文件: 在 app01 下新建一个 templatetags 的文件夹,然后创建 myfilter.py 文件 这个 templatetags 名字是固定的,myfilter 是自己起的 ...
- [ kvm ] 学习笔记 9:WebVirtMgr 基础及安装使用
目录- 1. 前言- 2. webvirtmgr 简介- 3. webvirtmgr 部署实践 - 3.1 配置 webvirtmgr 主机 - 3.2 kvm node节点配置 - ...
- 最新 企叮咚java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿. 企叮咚等10家互联网公司的校招Offer,因为某些自身原因最终选择了 企叮咚.6.7月主要是做系统复习.项目复盘.Leet ...
- tracert详解
1tracert作用 是用于探索源地址到目标地址当中所经过的路线.而每到达一个点,就会向源地址返回一个信号.例如A要访问D,那么当中经过B,再经过C.当经过B时,会向A返回一个信号,当经过C时,再向A ...
- 洛谷 题解 P1041 【传染病控制】
[思路] 题目给出一棵树.第\(i\)步拆的一定是第\(i\)层与第\(i+1\)层之间的连边,否则不是最优(自行证明即可),所以可以暴力枚举每一次拆哪一个节点与上一个节点的连边. 把所有节点所在的层 ...
- TCP/IP学习笔记9--以太网之基本概念1: 分类,连接方式
时间是变化的财富.时钟模仿它,却只有变化而无财富. -- 泰戈尔 以太网(Ethernet)一词源于Ether(以太), 是介质的意思.在爱因斯坦哥们提出量子力学之前,人们普遍认为宇宙空间充满以太,并 ...
- URI和URL的关系与区别
首先给大家举个例子,有一家公司的总经理,某天,给了我一张名片,上面写了他的头衔,北京XXX公司总经理 张三,还有他的办公室地址,北京市海淀区长安街35号北京XXX公司总经理办公室,那么,我以后给我的朋 ...
- 简单实现SpringBoot启动
一.准备: IDEA 使用简单手写导包实现spring boot,未使用idea自带的spring创建方法 可以更加简单理解springboot启动过程 二.开始 1.打开idea创建project ...