欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Flutter進階質(zhì)感設(shè)計之標簽欄

 更新時間:2021年10月11日 16:49:39   作者:何小有  
這篇文章主要為大家詳細介紹了Flutter進階質(zhì)感設(shè)計之標簽欄,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

在質(zhì)感設(shè)計的控件中,有一個顯示水平的一行選項卡,通常作為AppBar控件的一部分創(chuàng)建,并與TabBarView控件結(jié)合使用。

import 'package:flutter/material.dart';
/*
 * 枚舉類,標簽演示樣式
 * 圖標和文本
 * 僅圖標
 * 僅文本
 */
enum TabsDemoStyle {
 iconsAndText,
 iconsOnly,
 textOnly
}
/*
 * 頁面類
 * 圖標
 * 文本
 */
class _Page {
 _Page({
 this.icon,
 this.text,
 });
 final IconData icon;
 final String text;
}
// 存儲所有頁面的列表
final List<_Page> _allPages = <_Page>[
 new _Page(icon: Icons.event, text: 'EVENT'),
 new _Page(icon: Icons.home, text: 'HOME'),
 new _Page(icon: Icons.android, text: 'ANDROID'),
 new _Page(icon: Icons.alarm, text: 'ALARM'),
 new _Page(icon: Icons.face, text: 'FACE'),
 new _Page(icon: Icons.language, text: 'LANGUAGE'),
];
class ScrollableTabsDemo extends StatefulWidget {
 @override
 _ScrollableTabsDemoState createState() => new _ScrollableTabsDemoState();
}
// 繼承SingleTickerProviderStateMixin,提供單個Ticker(每個動畫幀調(diào)用它的回調(diào)一次)
class _ScrollableTabsDemoState extends State<ScrollableTabsDemo> with SingleTickerProviderStateMixin {
 /*
 * 在TabBar和TabBarView之間的坐標選項卡選擇
 * TabBar:質(zhì)感設(shè)計控件,顯示水平的一行選項卡
 * TabBarView:可分布列表,顯示與當前所選標簽對應(yīng)的控件
 */
 TabController _controller;
 TabsDemoStyle _demoStyle = TabsDemoStyle.iconsAndText;
 @override
 void initState() {
 super.initState();
 /*
 * 創(chuàng)建一個對象,用于管理TabBar和TabBarView所需的狀態(tài)
 * length:選項卡的總數(shù),存儲所有頁面的列表中的元素個數(shù)
 */
 _controller = new TabController(vsync: this, length: _allPages.length);
 }
 // 釋放對象使用的資源
 @override
 void dispose() {
 super.dispose();
 _controller.dispose();
 }
 void changeDemoStyle(TabsDemoStyle style) {
 setState((){
 _demoStyle = style;
 });
 }
 @override
 Widget build(BuildContext context) {
 // 獲取當前主題的控件前景色
 final Color iconColor = Theme.of(context).accentColor;
 return new Scaffold(
 appBar: new AppBar(
 title: new Text('可滾動的標簽頁'),
 actions: <Widget>[
  new PopupMenuButton<TabsDemoStyle>(
  onSelected: changeDemoStyle,
  itemBuilder: (BuildContext context) => <PopupMenuItem<TabsDemoStyle>>[
  new PopupMenuItem<TabsDemoStyle>(
  value: TabsDemoStyle.iconsAndText,
  child: new Text('圖標和文本')
  ),
  new PopupMenuItem<TabsDemoStyle>(
  value: TabsDemoStyle.iconsOnly,
  child: new Text('僅圖標')
  ),
  new PopupMenuItem<TabsDemoStyle>(
  value: TabsDemoStyle.textOnly,
  child: new Text('僅文本')
  )
  ]
  ),
 ],
 bottom: new TabBar(
  // 控件的選擇和動畫狀態(tài)
  controller: _controller,
  // 標簽欄是否可以水平滾動
  isScrollable: true,
  // 標簽控件的列表
  tabs: _allPages.map((_Page page){
  switch(_demoStyle) {
  case TabsDemoStyle.iconsAndText:
  return new Tab(text: page.text, icon: new Icon(page.icon));
  case TabsDemoStyle.iconsOnly:
  return new Tab(icon: new Icon(page.icon));
  case TabsDemoStyle.textOnly:
  return new Tab(text: page.text);
  }
  }).toList(),
 ),
 ),
 body: new TabBarView(
 // 控件的選擇和動畫狀態(tài)
 controller: _controller,
 // 每個標簽一個控件
 children: _allPages.map((_Page page) {
  return new Container(
  key: new ObjectKey(page.icon),
  padding: const EdgeInsets.all(12.0),
  // 質(zhì)感設(shè)計卡片
  child:new Card(
  child: new Center(
  child: new Icon(
   page.icon,
   color: iconColor,
   size: 128.0,
  )
  )
  )
  );
 }).toList(),
 )
 );
 }
}
void main() {
 runApp(new MaterialApp(
 title: 'Flutter教程',
 home: new ScrollableTabsDemo(),
 ));
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android中如何取消listview的點擊效果

    Android中如何取消listview的點擊效果

    這篇文章主要介紹了 Android中取消listview的點擊效果的實現(xiàn)方法,通過引用transparent之后會讓點擊效果透明化,一起通過本文學(xué)習吧
    2017-01-01
  • Android編程之基于Log演示一個activity生命周期實例詳解

    Android編程之基于Log演示一個activity生命周期實例詳解

    這篇文章主要介紹了Android編程之基于Log演示一個activity生命周期,結(jié)合完整實例形式較為詳細的分析總結(jié)了Log演示activity生命周期的具體用法及Log的具體使用方法,需要的朋友可以參考下
    2015-12-12
  • Android帶進度條的下載圖片示例(AsyncTask異步任務(wù))

    Android帶進度條的下載圖片示例(AsyncTask異步任務(wù))

    本文主要介紹Android帶進度條的下載圖片示例(AsyncTask異步任務(wù))的方法解析。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • Android OkHttp的簡單使用和封裝詳解

    Android OkHttp的簡單使用和封裝詳解

    這篇文章主要介紹了Android OkHttp的簡單使用和封裝詳解的相關(guān)資料,Android OKHttp的簡單get、post的使用,再到它的封裝,需要的朋友可以參考下
    2016-12-12
  • Android中Notification用法實例總結(jié)

    Android中Notification用法實例總結(jié)

    這篇文章主要介紹了Android中Notification用法,以實例形式較為詳細的分析并總結(jié)了Notification的功能與使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • Flutter 側(cè)滑欄及城市選擇UI的實現(xiàn)方法

    Flutter 側(cè)滑欄及城市選擇UI的實現(xiàn)方法

    這篇文章主要介紹了Flutter 側(cè)滑欄及城市選擇UI的實現(xiàn),本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • Android開發(fā)之天氣趨勢折線圖

    Android開發(fā)之天氣趨勢折線圖

    在開發(fā)天氣APP的時候會要顯示多天的信息,所以加一個折線圖來顯示一下天氣變化趨勢是很不錯的效果,本文詳細介紹了開發(fā)過程,下面一起來看看。
    2016-08-08
  • android studio 使用Mocklocation虛擬定位

    android studio 使用Mocklocation虛擬定位

    這篇文章主要介紹了android studio 使用Mocklocation虛擬定位總結(jié),本文分步驟給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • Kotlin開發(fā)實戰(zhàn)之hello world

    Kotlin開發(fā)實戰(zhàn)之hello world

    這篇文章主要為大家詳細介紹了Kotlin開發(fā)實戰(zhàn)之hello world的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Android實現(xiàn)淘寶客戶端倒計時界面

    Android實現(xiàn)淘寶客戶端倒計時界面

    這篇文章主要為大家詳細介紹了Android實現(xiàn)淘寶客戶端倒計時界面,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04

最新評論