中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

flutter如何實現appbar下選項卡切換

發布時間:2021-07-12 09:13:53 來源:億速云 閱讀:248 作者:chen 欄目:開發技術

這篇文章主要講解了“flutter如何實現appbar下選項卡切換”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“flutter如何實現appbar下選項卡切換”吧!

本文實例為大家分享了flutter實現appbar下選項卡切換的具體代碼,供大家參考,具體內容如下

TabBar 、Tab、TabBarView 結合實現

flutter如何實現appbar下選項卡切換

這里實現的是appbar下的選項卡

import 'package:flutter/material.dart';

/**
 * 有狀態StatefulWidget
 *  繼承于 StatefulWidget,通過 State 的 build 方法去構建控件
 */
class TabBarAndTopTab extends StatefulWidget {
  通過構造方法傳值
  TabBarAndTopTab();

  //主要是負責創建state
  @override
  _DemoStateWidgetState createState() => _DemoStateWidgetState();
}

/**
 * 在 State 中,可以動態改變數據
 * 在 setState 之后,改變的數據會觸發 Widget 重新構建刷新
 */
class _DemoStateWidgetState extends State<TabBarAndTopTab>
    with SingleTickerProviderStateMixin {
  _DemoStateWidgetState();

  List tabs = ["首頁", "發現", "我的", "設置"];

  //用于控制/監聽Tab菜單切換
  //TabBar和TabBarView正是通過同一個controller來實現菜單切換和滑動狀態同步的。
  TabController tabController;

  @override
  void initState() {
    ///初始化,這個函數在生命周期中只調用一次
    super.initState();
    tabController = TabController(length: tabs.length, vsync: this);
  }

  @override
  void didChangeDependencies() {
    ///在initState之后調 Called when a dependency of this [State] object changes.
    super.didChangeDependencies();
  }

  @override
  Widget build(BuildContext context) {
    return buildTabScaffold();
  }

  //通過“bottom”屬性來添加一個導航欄底部tab按鈕組,將要實現的效果如下:
  Widget buildTabScaffold() {
    return Scaffold(
      appBar: AppBar(
        title: Text('標題'),
        //設置選項卡
        bottom: buildTabBar(),
        //設置標題居中
        centerTitle: true,
      ),
      //設置選項卡對應的page
      body: buildBodyView(),
    );
  }

  //當整個頁面dispose時,記得把控制器也dispose掉,釋放內存
  @override
  void dispose() {
    tabController.dispose();
    super.dispose();
  }

  buildBodyView() {
    //構造 TabBarView
    Widget tabBarBodyView = TabBarView(
      controller: tabController,
      //創建Tab頁
      children: tabs.map((e) {
        return Container(
          alignment: Alignment.center,
          child: Text(e, textScaleFactor: 1),
        );
      }).toList(),
    );
    return tabBarBodyView;
  }

  buildTabBar() {
    //構造 TabBar
    Widget tabBar = TabBar(
        //tabs 的長度超出屏幕寬度后,TabBar,是否可滾動
        //設置為false tab 將平分寬度,為true tab 將會自適應寬度
        isScrollable: false,
        //設置tab文字得類型
        labelStyle: TextStyle(fontSize: 15, fontWeight: FontWeight.bold),
        //設置tab選中得顏色
        labelColor: Colors.white,
        //設置tab未選中得顏色
        unselectedLabelColor: Colors.white70,
        //設置自定義tab的指示器,CustomUnderlineTabIndicator
        //若不需要自定義,可直接通過
        //indicatorColor 設置指示器顏色
        //indicatorWight 設置指示器厚度
        //indicatorPadding
        //indicatorSize  設置指示器大小計算方式
        ///指示器大小計算方式,TabBarIndicatorSize.label跟文字等寬,TabBarIndicatorSize.tab跟每個tab等寬
        indicatorSize: TabBarIndicatorSize.tab,
        //生成Tab菜單
        controller: tabController,
        //構造Tab集合
        tabs: tabs.map((e) => Tab(text: e)).toList());

    return tabBar;
  }
}

感謝各位的閱讀,以上就是“flutter如何實現appbar下選項卡切換”的內容了,經過本文的學習后,相信大家對flutter如何實現appbar下選項卡切換這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

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

AI

通州区| 常州市| 静乐县| 武冈市| 昭觉县| 柯坪县| 德钦县| 离岛区| 赫章县| 安阳县| 九龙坡区| 东阳市| 泾源县| 嘉义市| 崇州市| 巴中市| 宜宾市| 怀柔区| 河池市| 通榆县| 佛冈县| 曲松县| 林口县| 利津县| 巧家县| 临夏县| 松桃| 丰县| 龙门县| 安阳市| 鞍山市| SHOW| 剑阁县| 湘潭县| 衡水市| 靖州| 隆昌县| 海门市| 香格里拉县| 阳高县| 枣阳市|