亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Flutter中使用 TabLayout 布局

發布時間:2021-05-12 16:51:42 來源:億速云 閱讀:201 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關怎么在Flutter中使用 TabLayout 布局,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

頂部TabBar

使用 flutter create xxxx 創建一個項目

打開項目文件夾,在 lib 目錄里創建三個 dart 文件,內容分別如下

First.dart

import "package:flutter/material.dart";
class First extends StatelessWidget {
 @override
 Widget build(BuildContext context) {
 return Material(
  color: Colors.green,
 );
 }
}

Second.dart

import "package:flutter/material.dart";

class Second extends StatelessWidget {
 @override
 Widget build(BuildContext context) {
 return Material(
  color: Colors.red,
 );
 }
}

Third.dart

import "package:flutter/material.dart";
class Third extends StatelessWidget {
 @override
 Widget build(BuildContext context) {
 return Material(
  color: Colors.yellow,
 );
 }
}

修改 main.dart 文件內容,TabLayout布局是個有狀態的組件,所以創建組件時要繼承 StatefulWidget 類

動圖中的 TabBar 是在 Scaffold 中的 appBar 中定義的,也就是說 tabbar 是 appBar的一部分

appBar: AppBar(
 title: Text(widget.title),
 bottom: TabBar(
 controller: tabController,
 tabs: <Tab>[
  new Tab(text: "問答"),
  new Tab(text: "分享"),
  new Tab(text: "博客"),
 ],
 ),
),

每個 tabbar 對應的視圖是在 body 里定義的,按照順序初始化好即可

// 引入 dart 文件
import 'First.dart' as first;
import 'Second.dart' as second;
import 'Third.dart' as third;
body: TabBarView(controller: tabController, children: <Widget>[
 new first.First(),
 new second.Second(),
 new third.Third(),
]),

完整代碼:

import 'package:flutter/material.dart';

import 'First.dart' as first;
import 'Second.dart' as second;
import 'Third.dart' as third;

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
 // This widget is the root of your application.
 @override
 Widget build(BuildContext context) {
 return MaterialApp(
  title: 'Flutter Demo',
  theme: ThemeData(
  primarySwatch: Colors.blue,
  ),
  home: MyHomePage(title: 'TabLayout Demo'),
 );
 }
}

class MyHomePage extends StatefulWidget {
 MyHomePage({Key key, this.title}) : super(key: key);

 final String title;

 @override
 _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage>
 with SingleTickerProviderStateMixin {
 TabController tabController;

 @override
 void initState() {
 super.initState();

 tabController = new TabController(length: 3, vsync: this);
 }

 @override
 void dispose() {
 super.dispose();
 tabController.dispose();
 }

 @override
 Widget build(BuildContext context) {
 return Scaffold(
  appBar: AppBar(
  title: Text(widget.title),
  bottom: TabBar(
   controller: tabController,
   tabs: <Tab>[
   new Tab(text: "問答"),
   new Tab(text: "分享"),
   new Tab(text: "博客"),
   ],
  ),
  ),
  body: TabBarView(controller: tabController, children: <Widget>[
  new first.First(),
  new second.Second(),
  new third.Third(),
  ]),
 );
 }
}

底部TabBar

上面定義的是頂部的tabbar,很多app的布局都是底部有見個tabbar,其實底部的定義方法就是將 appBar 屬性中的 bottom 給注釋掉,然后在跟 appBar 同級的位置定義一個 bottomNavigationBar 屬性,其 child 就是 TabBar 組件,tabbar的視圖跟上面定義方法是一樣的,代碼如下

Widget build(BuildContext context) {
 return Scaffold(
 appBar: AppBar(
  title: Text(widget.title),
//  bottom: TabBar(
//   controller: tabController,
//   tabs: <Tab>[
//   new Tab(text: "問答"),
//   new Tab(text: "分享"),
//   new Tab(text: "博客"),
//   ],
//  ),
 ),
 bottomNavigationBar: new Material(
  color: Colors.blue,
  child: TabBar(
  controller: tabController,
  indicatorColor: Colors.white,
  tabs: <Tab>[
   new Tab(text: "問答"),
   new Tab(text: "分享"),
   new Tab(text: "博客"),
  ],
  ),
 ),
 body: TabBarView(controller: tabController, children: <Widget>[
  new first.First(),
  new second.Second(),
  new third.Third(),
 ]),
 );
}

以上就是怎么在Flutter中使用 TabLayout 布局,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

中牟县| 调兵山市| 黄梅县| 临西县| 安康市| 南宁市| 屯昌县| 芦山县| 肇州县| 庄浪县| 瑞昌市| 赫章县| 延庆县| 阿鲁科尔沁旗| 元朗区| 铜鼓县| 岳池县| 阿克陶县| 吉林市| 太谷县| 大洼县| 赞皇县| 西贡区| 华阴市| 金沙县| 镇平县| 清水河县| 治县。| 金华市| 富蕴县| 临城县| 健康| 永福县| 来宾市| 哈巴河县| 天水市| 红原县| 金堂县| 文水县| 淅川县| 青田县|