flutter - 是否可以从另一个 class 制作提交按钮?

flutter - Is it possible to make submit button from another class?

我正在制作 Instagram 克隆项目。

我还没做,不知道这个功能能不能实现。

我想在应用栏上制作提交按钮

我可以在键盘中找到完成按钮源,但我想制作应用栏提交按钮。

cuz Appbar提交按钮功能好像要用另一个class的访问方式。

所以我想学习那个。它与gloabalkey有关吗?嗯....好迷茫.....

如果有人能帮助我,我将不胜感激。

是的你可以这样做: 您可以为此使用 Getx 来观察 EditText,当单击按钮时,它将按照 EditText 执行操作。 这是 Getx 示例:

dependencies:
  get: ^4.6.1

示例: 在本示例中,您将学习 GetX 的基础知识。您将看到使用此框架编写代码变得多么容易,并且您将了解 GetX 提出要解决的问题。

如果将默认的Flutter应用程序用Getx重写,代码也就那么几行。 Getx 状态管理器比使用 setState 更容易。您只需要在变量的末尾添加一个“.obs”,然后将要更改的小部件包装在 Obx() 中。

void main() => runApp(MaterialApp(home: Home()));

class Home extends StatelessWidget {
  var count = 0.obs;
  @override
  Widget build(context) => Scaffold(
      appBar: AppBar(title: Text("counter")),
      body: Center(
        child: Obx(() => Text("$count")),
      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
        onPressed: () => count ++,
      ));
}

希望对你有帮助谢谢

您可以使用 VoidCallback 自定义 class,并监听应用栏中的点击事件。

appBar: CustomAppBar(
  callback: () {
    print("Save");
  },
),

自定义应用栏将是

class CustomAppBar extends StatelessWidget implements PreferredSizeWidget {
  const CustomAppBar({
    Key? key,
    required this.callback,
  }) : super(key: key);
  final VoidCallback callback;

  @override
  Widget build(BuildContext context) {
    return AppBar(
      actions: [
        IconButton(
          onPressed: callback,
          icon: const Icon(Icons.save),
        )
      ],
    );
  }

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