美文网首页Flutter学习
Flutter入门基础(九)- 搭建tabbar

Flutter入门基础(九)- 搭建tabbar

作者: 洲洲哥 | 来源:发表于2019-06-11 20:03 被阅读8次

1:效果如下

WechatIMG2 1.png

下载地址

iOSer的角度来说,我们要创建的是底部tabbarController的建设。对于flutter在搭建的时候有比较常用的有两种情况
1:home节点试试一个dart页面
2:home节点是一个bottomNavigationBar

2:下面是工程的目录环境

NOTICE:我把工程的建设文件统一放到app文件下,里面有bottomNavigationBar的设置,和MateriaApp的设置。还有网络设置的类库

WechatIMG3.jpeg

3:程序启动配置

main函数启动
这里直接使用app_scene.dart函数,可直接调用


import 'package:flutter/material.dart';
import 'package:mine_sold/app/app_scene.dart';

void main(){
  runApp(AppScene());
}

4: 设置home节点

MaterialApp 设置一个主题色,和iOS在设置tabbar对应她vc的类似。home节点需要添加对应bottomNavigationBar,添加对应tabbar内容。

注意添加tabbar的数量至少要大于等于2!!!!
注意添加tabbar的数量至少要大于等于2!!!!
注意添加tabbar的数量至少要大于等于2!!!!
(重要的事情要说三遍)

import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:mine_sold/app/root_scene.dart';

class AppScene extends StatelessWidget {
  @override
  Widget build(BuildContext context){
    return MaterialApp(
      title:'MINE',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primaryColor: Colors.white,
        dividerColor: Colors.red,
        scaffoldBackgroundColor: Colors.red,
        textTheme: TextTheme(body1: TextStyle(color: Colors.red))
      ),
      home: RootScene(),
    );
  }
}

5: 添加tabbar的BottomNavigationBarItem

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:mine_sold/home/home_scene.dart';
import 'package:mine_sold/mine/mine_scene.dart';

class RootScene extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => RootSceneState();
}

class RootSceneState extends State<RootScene> {

  int _tabIndex = 0;
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context){
    return Scaffold(
      body: IndexedStack(
        children: <Widget>[
          HomeScene(),
          MineScene()
        ],
        index: _tabIndex,
      ),
      bottomNavigationBar: CupertinoTabBar(
        backgroundColor: Colors.white,
        activeColor: Colors.red,
        items: <BottomNavigationBarItem>[
          BottomNavigationBarItem(icon: Image.asset('img/tab_me_n.png'), title: Text('书架')),
          BottomNavigationBarItem(icon: Image.asset('img/tab_me_p.png'), title: Text('我的')),
        ],
        currentIndex: _tabIndex,
        onTap: (index) {
          setState(() {
            _tabIndex = index;
          });
        },
      ),
    );
  }
}

1:可以看到有一个_tabindex变量,和一个currentIndex这一对key和value.这就是来控制选中哪一个item的设置。
2:点击事件-就是onTap(index){},可获取当前点击的索引给_tabIndex即可。
3:更新UI
也看和settimeout函数一样,可在主线中刷新的功能

setState(() {
         _tabIndex = index;
   });
  • 如有问题可添加QQ群:234812704
  • 欢迎各位一块学习,提高逼格!
  • 也可以添加洲洲哥的微信公众号

可以来微信公众号(洲洲哥)后台给我留言。 快来扫码关注我们吧!

公众号二维码

相关文章

网友评论

    本文标题:Flutter入门基础(九)- 搭建tabbar

    本文链接:https://www.haomeiwen.com/subject/jejcfctx.html