这是场景的简化版本:
class ParentWdiegt extends StatelessWidget{
//
//
floatinActionButton: FloatingActionButtonWidget(onPressed:()=>CustomWidgetState.someMethod(someValue))
//
//somewhere in the ParentWidget tree
child: CustomWidget() //is stateful
}
Run Code Online (Sandbox Code Playgroud)
CustomWidgetState
class CustomWidgetState extends State<CustomWidget>{
//trigger this function when FAB is pressed in parent widget
someMethod(SomeValue) {//}
}
Run Code Online (Sandbox Code Playgroud)
someMethod
在不使用FAB的情况下按下FAB时,是否有任何方式可以在状态对象中显示InheritedWidget
?
是否有可能调用setState()
其他部件尤其是小部件(嵌入在其它部件)的onPressed()
方法,所以只能是小部件是重绘?
我想单击按钮,然后查看“ MyTextWidget”的状态进行更改。其余的布局是相同的,那里没有任何更改,因此不应重写。
这是我的代码:
import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Timer',
theme: new ThemeData(
primaryColor: Colors.grey.shade800,
),
home: new MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
int _seconds = 1;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("title"),
),
body: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
MyTextWidget(), //just update this widget
Divider(),
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround, …
Run Code Online (Sandbox Code Playgroud) 我想在StatefulWidget中使用flutter通知与另一个StatefulWidget小部件进行通信。我在下面发布了一个我认为应该正常工作的示例,但事实并非如此。当您单击“ +”图标按钮时,它应将通知发送到subPage小部件。当前,当您单击按钮时,似乎什么都没有发生。我希望可以执行onTitlePush()函数。这是我第一次尝试使用“通知”,而且我必须设置不正确。我在更大的应用程序中使用了此代码,但是下面的代码只是实现的示例。你能告诉我我哪里出问题了吗?
import 'package:flutter/material.dart';
void main() => runApp(TestApp());
class TestApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Notificaton Test',
home: MainPage(),
);
}
}
class MyNotification extends Notification {
final String title;
const MyNotification({this.title});
}
class MainPage extends StatefulWidget {
@override
MainPageState createState() {
return new MainPageState();
}
}
class MainPageState extends State<MainPage> {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Basic AppBar'),
actions: <Widget>[
// action button
IconButton(
icon: …
Run Code Online (Sandbox Code Playgroud)