真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么在Flutter中使用TabLayout布局

本篇文章給大家分享的是有關(guān)怎么在Flutter中使用 TabLayout 布局,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

在衢州等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需開(kāi)發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,成都全網(wǎng)營(yíng)銷(xiāo),外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè),衢州網(wǎng)站建設(shè)費(fèi)用合理。

頂部TabBar

使用 flutter create xxxx 創(chuàng)建一個(gè)項(xiàng)目

打開(kāi)項(xiàng)目文件夾,在 lib 目錄里創(chuàng)建三個(gè) dart 文件,內(nèi)容分別如下

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 文件內(nèi)容,TabLayout布局是個(gè)有狀態(tài)的組件,所以創(chuàng)建組件時(shí)要繼承 StatefulWidget 類(lèi)

動(dòng)圖中的 TabBar 是在 Scaffold 中的 appBar 中定義的,也就是說(shuō) tabbar 是 appBar的一部分

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

每個(gè) tabbar 對(duì)應(yīng)的視圖是在 body 里定義的,按照順序初始化好即可

// 引入 dart 文件
import 'First.dart' as first;
import 'Second.dart' as second;
import 'Third.dart' as third;
body: TabBarView(controller: tabController, children: [
 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
 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: [
   new Tab(text: "問(wèn)答"),
   new Tab(text: "分享"),
   new Tab(text: "博客"),
   ],
  ),
  ),
  body: TabBarView(controller: tabController, children: [
  new first.First(),
  new second.Second(),
  new third.Third(),
  ]),
 );
 }
}

底部TabBar

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

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

以上就是怎么在Flutter中使用 TabLayout 布局,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


網(wǎng)頁(yè)標(biāo)題:怎么在Flutter中使用TabLayout布局
轉(zhuǎn)載來(lái)源:http://weahome.cn/article/pshdgi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部