android - 如何访问有状态小部件列表的状态对象的方法? ( flutter )

标签 android inheritance flutter dart statefulwidget

class Astate extends State<A>
{
   List b=new List<B>();
   @override
   Widget build(BuildContext context){

       b.add(B());  
      //how do I access theMethod() for the state object for b[0]?

    }
}

class B extends StatefulWidget
{
      @override
      Bstate createState() => Bstate();
}

class Bstate extends State<B>
{
    theMethod()
     { 
        //some content
     }

  @override
  Widget build(BuildContext context) {
   }

}

有没有办法使用 b[0] 从相应的状态对象访问 theMethod()? 如果没有,是否有另一种方法可以达到同样的目的?

最佳答案

您可以使用带有 Widget 状态的 GlobalKey 来访问子 Widget 的方法:

class Main extends StatefulWidget {
  @override
  _MainState createState() => _MainState();
}

class _MainState extends State<Main> {
  GlobalKey<_HomeState> _key = GlobalKey();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('StackOverflow'),
      ),
      body: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          Home(key: _key),
          RaisedButton(
            onPressed: () => _key.currentState.changeText('new text'),
            child: Text('Change text'),
          )
        ],
      )
    );
  }
}

class Home extends StatefulWidget {
  Home({Key key}) : super(key: key);

  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
  String text = 'initial text';
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Text(text)
    );
  }

  void changeText(String newText){
    setState(() {
      text = newText;
    });
  }
}

关于android - 如何访问有状态小部件列表的状态对象的方法? ( flutter ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59646649/

相关文章:

flutter - 如何在 Flutter 移动应用程序中将 Azure AD 用户登录到 Firebase?

android - Ionic firebase token 始终为空且无 token 刷新

Android 每 30 秒从 url 加载图像

android - NoSuchMethodError Lcom/google/gson/Gson;根据改造响应

android - fragment 中的抽屉导航和 SurfaceView

android - 抖动中是否有任何应用交互检测器?

python - python 单元测试的基本测试用例类

java - 实现效果不佳

javascript - JavaScript 中的多重继承

flutter:如何实现ListView中的文字逐渐淡出?