• flutter 主页面底部导航栏实现以及主题风格设置


    import 'package:flutter/material.dart';
    import 'package:flutter_app/bottom_navigation_widget.dart';
    
    void main() => runApp(MyApp());
    
    class MyApp extends StatelessWidget {
    
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Flutter Demo',
          theme: ThemeData(
            primarySwatch: Colors.green,  //定义主题风格    primarySwatch
          ),
          home: new BottomNavigationWidget(),
        );
      }
    
    }
    import 'package:flutter/material.dart';
    import 'package:flutter_app/pages/AirplayScreen.dart';
    import 'package:flutter_app/pages/EmailScreen.dart';
    import 'package:flutter_app/pages/HomeScreen.dart';
    import 'package:flutter_app/pages/PagesScreen.dart';
    
    
    class BottomNavigationWidget extends StatefulWidget {
      _BottomNavigationWidgetState createState() => _BottomNavigationWidgetState();
    }
    
    class _BottomNavigationWidgetState extends State<BottomNavigationWidget> {
    //  final _BottomNavigationColor = Colors.blue;
      int _currentIndex = 0;
      List<Widget> list = List();
      @override
      void initState(){
        list
          ..add(HomeScreen())
          ..add(EmailScreen())
          ..add(PagesScreen())
          ..add(AirplayScreen());
        super.initState();
      }
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: list[_currentIndex],
          bottomNavigationBar: BottomNavigationBar(
              items: [
                BottomNavigationBarItem(
                    icon:Icon(
                      Icons.home,
    //                  color:_BottomNavigationColor,
                    ),
                    title:Text(
                        'Home',
    //                    style:TextStyle(color:_BottomNavigationColor)
                    )
                ),
                BottomNavigationBarItem(
                    icon:Icon(
                      Icons.email,
    //                  color:_BottomNavigationColor,
                    ),
                    title:Text(
                        'Email',
    //                    style:TextStyle(color:_BottomNavigationColor)
                    )
                ),
                BottomNavigationBarItem(
                    icon:Icon(
                      Icons.pages,
    //                  color:_BottomNavigationColor,
                    ),
                    title:Text(
                        'Pages',
    //                    style:TextStyle(color:_BottomNavigationColor)
                    )
                ),
                BottomNavigationBarItem(
                    icon:Icon(
                      Icons.airplay,
    //                  color:_BottomNavigationColor,
                    ),
                    title:Text(
                        'AipPlay',
    //                    style:TextStyle(color:_BottomNavigationColor)
                    )
                ),
              ],
              currentIndex:_currentIndex,
              onTap:(int index){
                setState((){
                  _currentIndex= index;
                });
              },
              selectedItemColor: Colors.green,
    //          unselectedItemColor: Colors.grey,
              type:BottomNavigationBarType.fixed
          ),
        );
      }
    }
    HomeScreen.dart 
    import 'package:flutter/material.dart';
    
    class HomeScreen extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
            appBar:AppBar(
              title: Text('HOME'),
            ),
            body:Center(
              child: Text('HOME'),
            )
        );
      }
    }

    其他页面类似

    效果:

  • 相关阅读:
    hdu 2044 一只小蜜蜂
    HDU 2041 超级楼梯
    卡特兰数
    hdu 1267 下沙的沙子有几粒?(二维递推题)
    大数加法、乘法
    学习时仪式感太强是不是不太好
    php记日志
    cygwin安装apt-cyg
    存储过程死循环之后的清理
    linux的计划任务crontab
  • 原文地址:https://www.cnblogs.com/loaderman/p/11346810.html
Copyright © 2020-2023  润新知