Flutter 封装AppBar

在微信中,有4项:聊天、联系人、发现、我的
其中前3项的appbar相同
在这里插入图片描述
在这里插入图片描述
“我的”一项没有appbar,所以要对其进行封装

import 'package:flutter/material.dart';

_popupMenuItem(String title, IconData icon) {
  return PopupMenuItem(
      child: Row(
    children: <Widget>[
      Padding(
        child: Icon(
          icon,
          color: Colors.white,
          size: 22,
        ),
        padding: EdgeInsets.only(right: 5),
      ),
      Padding(
        child: Text(title, style: TextStyle(color: Colors.white, fontSize: 22)),
        padding: EdgeInsets.only(left: 5, bottom: 5),
      ),
    ],
  ));
}

AppBar mybar(BuildContext context, String st) {
  return AppBar(
    title: Text(st),
    actions: <Widget>[
      IconButton(
          icon: Icon(
            Icons.search,
            size: 26,
          ),
          onPressed: () {
            Navigator.pushNamed(context, '/search');
          }),
      IconButton(
          icon: Icon(
            Icons.add_circle_outline,
            size: 26,
          ),
          onPressed: () {
            showMenu(
              context: context,
              position: RelativeRect.fromLTRB(500, 75, 10, 0),
              items: <PopupMenuEntry>[
                _popupMenuItem('发起群聊', Icons.chat_bubble_outline),
                _popupMenuItem('添加朋友', Icons.person_add),
                _popupMenuItem('扫一扫', Icons.crop_free),
                _popupMenuItem('收付款', Icons.offline_pin),
                _popupMenuItem('帮助', Icons.mail),
              ],
            );
          })
    ],
  );
}

单个页面代码为

import 'package:flutter/material.dart';
import 'bar.dart';

class wc extends StatelessWidget {
  _popupMenuItem(String title, IconData icon) {
    return PopupMenuItem(
        child: Row(
      children: <Widget>[
        Padding(
          child: Icon(
            icon,
            color: Colors.white,
            size: 22,
          ),
          padding: EdgeInsets.only(right: 5),
        ),
        Padding(
          child:
              Text(title, style: TextStyle(color: Colors.white, fontSize: 22)),
          padding: EdgeInsets.only(left: 5, bottom: 5),
        ),
      ],
    ));
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: mybar(context, '微信'),
      body: Text('wc'),
    );
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值