AppBarDesign はパラメータタイプ 'PreferredSizeWidget' に割り当てることができません。質問する

AppBarDesign はパラメータタイプ 'PreferredSizeWidget' に割り当てることができません。質問する

なぜこのようなことが起こるのか、誰か情報を提供してもらえませんか?

クラスを追加しようとするとアプリバーデザイン実装するアプリバーflutter は以下のエラーを出します。

エラー: 引数タイプ 'AppBarDesign' は、パラメータ タイプ 'PreferredSizeWidget' に割り当てることができません。([flutterbyrajath] lib\main.dart:27 で、argument_type_not_assignable)

    import 'package:flutter/material.dart';

    main() {
      runApp(new MyApp());
    }

    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Rajath\'s design ',
          debugShowCheckedModeBanner: false,
          theme: new ThemeData(primarySwatch: Colors.amber),
          home: new MyHomePage(key, 'App is Fun'),
        );
      }
    }

    class MyHomePage extends StatelessWidget {
      MyHomePage(Key key, this.title) : super(key: key);

      final title;

      @override
      Widget build(BuildContext context) {
        return new Scaffold(
          appBar: new AppBarDesign(key, title),
        );
      }
    }

    class AppBarDesign extends StatelessWidget {
      AppBarDesign(Key key, this.title) : super(key: key);

      final title;

      @override
      Widget build(BuildContext context) {
        return new AppBar(
          title: new Text(title),
        );
      }
    }

ベストアンサー1

他のトピックを検索せずにこれを実装するための役立つヒント:

class ApplicationToolbar extends StatelessWidget implements PreferredSizeWidget{
  @override
  Widget build(BuildContext context) {
    return AppBar( ... );
  }

  @override
  Size get preferredSize => const Size.fromHeight(kToolbarHeight);
}

注意: Dart 3にアップデートしていない場合は、「implements」の代わりに「with」を使用できます。

class ApplicationToolbar extends StatelessWidget with PreferredSizeWidget{...]

おすすめ記事