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);
}
我正在制作 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);
}