跳转至

Scaffold

Scaffold也是一个Widget 里面有appBar(可选)。

Scaffold页面架构

  • appBar属性。导航栏 不写就不显示导航栏。
  • 导航栏可以设置文字,颜色。而且可以自定义widget
  • centerTitle:title居中
  • actions:导航栏按钮
  • elevation: 0.0,//去除导航栏下面的线
  • body属性 导航栏下面的内容
  • bottomNavigationBar 类似iOS的tabBar
Scaffold(
  backgroundColor: Colors.white,
  appBar: AppBar(
    //导航栏 不写就不显示导航栏
    backgroundColor: themeColor, //导航栏背景色
    foregroundColor: Colors.black, // 文字颜色
    title: const Text('导航栏标题'), //导航栏标题
    centerTitle: true, //安卓 切换应用时显示
    elevation: 0.0, //去除导航栏底部的条
    actions: [ 
      GestureDetector(
        onTap: () { },
        child: Container(
          // height: 45,
          // width: 45,
          margin: const EdgeInsets.only(right: 10),
          child: const Image(
            image: AssetImage('images/icon_friends_add.png'),
            width: 25,
          ),
        ),
      ),
    ],//右侧按钮
  ),
  body: body, //MyWidget父部件是body。开发界面是放到了body里面。
);

自定义Scaffold基类

class HHScaffold extends StatelessWidget {
  final Widget body;
  final String? title;
  const HHScaffold(this.body, {this.title, Key? key}) : super(key: key);
  // const ScaffoldDemo({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      //Scaffold也是一个Widget 里面有appBar
      backgroundColor: Colors.white,
      appBar: AppBar(
        //导航栏 不写就不显示导航栏
        backgroundColor: themeColor, //导航栏背景色
        title: Text(title ?? 'Scaffold'), //导航栏标题
        centerTitle: true, //安卓 切换应用时显示
        elevation: 0.0, //去除导航栏底部的条
      ),
      body: body, //MyWidget父部件是body。开发界面是放到了body里面。
    );
  }
}