0

私はフラッシュバーウィジェットが初めてです。ウィジェットに関するいくつかの記事とビデオに続いて、次のコンパイラ エラーが発生する単純なコード サンプルを作成します。 https://pub.dev/packages/flushbar

ほとんどの例は、onPressed クリック イベントに依存しています。私の場合、フラッシュバー メッセージを表示する前に何らかの処理を行う必要があります。

私は両方のバージョンで試してみました: フラッシュバー: ^1.10.0 フラッシュバー: ^1.9.1

以下のコードで何が実行されるか教えていただけますか?

これはコンパイラエラーです:

Gradle タスク 'assemblyDebug' を実行しています... コンパイラ メッセージ: /C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/flushbar-1.10.0/lib/flushbar_route.dart:303:8: エラー: メソッド 'FlushbarRoute.install' には、オーバーライドされたメソッド 'OverlayRoute.install' よりも位置引数が少なくなっています。void install() { ^ /C:/src/flutter/packages/flutter/lib/src/widgets/routes.dart:41:8: コンテキスト: これはオーバーライドされたメソッド ('install') です。void install(OverlayEntry InsertionPoint) { ^ /C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/flushbar-1.10.0/lib/flushbar_route.dart:311:18: エラー: 位置が少なすぎます引数: 1 つが必要、0 が与えられます。super.install(); ^ ターゲットの kernel_snapshot が失敗しました: 例外: スナップショットの作成中にエラーが発生しました: null ビルドに失敗しました。

FAILURE: ビルドは例外で失敗しました。

  • 場所: スクリプト 'C:\src\flutter\packages\flutter_tools\gradle\flutter.gradle' 行: 780

  • 問題: タスク ':app:compileFlutterBuildDebug' の実行に失敗しました。

    プロセス 'command 'C:\src\flutter\bin\flutter.bat'' がゼロ以外の終了値 1 で終了しました

これが私のサンプルコードです。構文にエラーはありませんが、コンパイルに失敗します。

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

class MyHomePage extends StatefulWidget {
  MyHomePage();

  @override
  State<StatefulWidget> createState() {
    return _MyHomePage();
  }

}
class _MyHomePage extends State<MyHomePage> {
  int _selectedIndex = 2;

  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Flushbar')),
      body: Center(
          child:
          BottomNavigationBar(
            items: <BottomNavigationBarItem>[
              BottomNavigationBarItem(
                icon: Icon(Icons.today),
                title: Text('Today'), // Today button.
              ),
              BottomNavigationBarItem(
                icon: Icon(Icons.business ),
                title: Text('Activities'),  // Activities.
              ),
              BottomNavigationBarItem(
                icon: Icon(Icons.save),
                title: Text('Finish'), // Finish
              ),
            ],
            currentIndex: _selectedIndex,
            selectedItemColor: Colors.amber[800],
            onTap: _onItemTapped,
          )
      ),
    );
  }

  void _onItemTapped(int index) {
    setState(() {
      switch (index) {
        case 0:           // Today selected.
//          todayButtonPressed();
          break;
        case 1:           // Activity selected.
//          activityButtonPressed();
          break;
        case 2:           // Finish selected.
          finishButtonPressed();
          break;
      }
    });
  }

  void finishButtonPressed() async {
    // Processing record.
    // .....
    // ....
    displayFlushBar(context);
  }

  void displayFlushBar(BuildContext context) {
    Flushbar(
      title: 'Action',
      message: 'Is prohibited',
      icon: Icon(
        Icons.info_outline,
        size: 28,
        color: Colors.blue.shade300,
      ),
      leftBarIndicatorColor: Colors.blue.shade300,
      duration: Duration(seconds: 3),
    )..show(context);
  }
}
4

0 に答える 0