メインコンテンツにスキップ

invalid_widget_preview_application

「@Preview(...)」アノテーションは、公開されており、静的にアクセス可能なコンストラクタと関数にのみ適用できます。

説明

#

この診断は、無効なウィジェットプレビューターゲットに@Preview(...)アノテーションが適用された場合にアナライザによって生成されます。ウィジェットプレビューは、公開されており、静的にアクセス可能で、明示的に定義されたコンストラクタと関数にのみ適用できます。

#

以下のコードは、_myPrivatePreview がプライベートであるため、この診断を生成します。

dart
import 'package:flutter/widgets.dart';
import 'package:flutter/widget_previews.dart';

// Invalid application to private top-level function.
@Preview()
// ignore: unused_element
Widget _myPrivatePreview() => Text('Foo');

以下のコードは、myExternalPreviewexternal であるため、この診断を生成します。

dart
import 'package:flutter/widgets.dart';
import 'package:flutter/widget_previews.dart';


// Invalid application to an external function.
@Preview()
external Widget myExternalPreview();

以下のコードは、PublicWidget._() がプライベートであるため、この診断を生成します。

dart
import 'package:flutter/widgets.dart';
import 'package:flutter/widget_previews.dart';

class PublicWidget extends StatelessWidget {
  // Invalid application to a private constructor.
  @Preview()
  PublicWidget._();

  @override
  Widget build(BuildContext) => Text('Foo');
}

以下のコードは、instancePreview がインスタンスメソッドであるため、この診断を生成します。

dart
import 'package:flutter/widgets.dart';
import 'package:flutter/widget_previews.dart';

class PublicWidget extends StatelessWidget {
  // Invalid application to a instance member.
  @Preview()
  Widget instancePreview() => PublicWidget();

  @override
  Widget build(BuildContext context) => Text('Foo');
}

以下のコードは、_PrivateWidget がプライベートであるため、この診断を生成します。

dart
import 'package:flutter/widgets.dart';
import 'package:flutter/widget_previews.dart';

// ignore: unused_element
class _PrivateWidget extends StatelessWidget {
  // Invalid application to a constructor of a private class.
  @Preview()
  _PrivateWidget();

  @override
  Widget build(BuildContext context) => Text('Foo');
}

以下のコードは、_PrivateWidget がプライベートであるため、この診断を生成します。

dart
import 'package:flutter/widgets.dart';
import 'package:flutter/widget_previews.dart';

// ignore: unused_element
class _PrivateWidget extends StatelessWidget {
  // Invalid application to a static method of a private class.
  @Preview()
  Widget privateStatic() => _PrivateWidget();

  @override
  Widget build(BuildContext context) => Text('Foo');
}

以下のコードは、AbstractWidgetabstract クラスであるため、この診断を生成します。

dart
import 'package:flutter/widgets.dart';
import 'package:flutter/widget_previews.dart';

abstract class AbstractWidget extends StatelessWidget {
  // Invalid application to a constructor of an abstract class.
  @Preview()
  AbstractWidget();

  @override
  Widget build(BuildContext context) => Text('Foo');
}

一般的な修正

#

プレビューとして使用するための、専用の公開、静的にアクセス可能、かつ明示的に定義されたコンストラクタ、トップレベル関数、またはクラスメンバーを作成してください。