私はフラッターが初めてで、main.dart から切り離された共通の appBar を持っているので、すべての画面で使用できます。これは appBar を含む dart ファイルです。
import 'package:flutter/material.dart';
import 'package:voota/utils/Hex2Color.dart';
import 'package:intl/intl.dart';
class BaseAppBar extends StatelessWidget implements PreferredSizeWidget {
final Color bgColor = HexToColor('#508bbb');
final String title;
final AppBar appBar;
final List<Widget> widgets;
BaseAppBar({Key key, this.title, this.appBar, this.widgets})
: super(key: key);
@override
Widget build(BuildContext context) {
DateTime now = DateTime.now();
String formattedDate = DateFormat('MMMM d, y').format(now);
return AppBar(
title: RichText(
text: TextSpan(
text: 'VOOTA ' + title,
style: TextStyle(
fontSize: 15.0,
color: Colors.white,
),
children: [
TextSpan(text: '\n'),
TextSpan(
text: formattedDate,
style: TextStyle(
fontSize: 10.0,
color: Colors.white,
),
),
]),
textAlign: TextAlign.center,
),
centerTitle: true,
backgroundColor: bgColor,
elevation: 0,
//actions: widgets,
);
}
@override
Size get preferredSize => new Size.fromHeight(appBar.preferredSize.height);
}
appBar が定義されている dart ファイルをインポートするだけなので、すべての画面で次のように同じ appBar を使用できます。
Widget build(BuildContext context) {
return Scaffold(
appBar: BaseAppBar(title: title, appBar: AppBar()),
....
今、いくつかの画面にアクション ボタン (オーバーフロー ドロップダウン メニュー) が必要です。ただし、アクションは画面ごとに異なります。どうすればこれを定義できますか? ある画面では、選択メニューに更新のみが表示され、別の画面では、更新とログアウトとアクティブ化のオプションが異なるルートで表示されます。そして、ダッシュボードにはまったくアクションがありません...ヘルプ、アドバイス、またはリンクについてはThx ;)