Как вызвать/использовать определенное расширение Flutter?

У меня есть это на scaffold_context.dart:

import 'package:flutter/material.dart';

extension Context on Scaffold {

  static Scaffold builder({ AppBar appBar, Function (BuildContext context) buildContext, Widget body }) {
    return Scaffold(
      appBar: appBar, 
      body: Builder(builder: (context) { 
        buildContext(context); 
        return body; 
      })
    );
  }

}

Но когда я попытался вызвать его в своем виджете пользовательского интерфейса:

import 'scaffold_context.dart';
...

  BuildContext _context;
  @override
  Widget build(BuildContext context) {
    return Scaffold.builder(
      appBar: AppBar(title: "Hello world"),
      buildContext: (context) => _context = context,
      body: Center(child: Text("Hello world")
    );
  }

Я получил ошибку:

Метод Builder не определен для класса Scaffold.

Как я должен использовать это расширение?


person Chen Li Yong    schedule 08.01.2020    source источник


Ответы (1)


Забудь об этом. По-видимому, мне нужно вызвать имя моего расширения, чтобы получить доступ к статической функции. Итак, мне нужно получить доступ к Context.builder вместо Scaffold.builder.

person Chen Li Yong    schedule 08.01.2020