【问题标题】:Flutter: Button should output an widget but doesn'tFlutter:按钮应该输出一个小部件,但没有
【发布时间】:2020-07-27 16:33:07
【问题描述】:

这是我的功能:

Widget RandomSkill(Widget SkillJonglieren) {
  return Widget SkillJonglieren;

这是无状态的小部件“SkillJonglierten”

  @override
  Widget build(BuildContext context) {
    return Center(
      child: Container(
        child: Column(
          children: <Widget>[
            Text('Jonglieren'),
            Image.asset('images/Jonglieren.jpg')
          ],
        ),
      ),
    );
  }
}

这是按钮

body: Align(alignment: Alignment.bottomCenter,
        child: RaisedButton(
        onPressed: RandomSkill,
        child: Text('Zufälliger Skill')
      ),
    ));

我只是想要,当我按下按钮时,这个小部件就会显示出来

【问题讨论】:

    标签: flutter


    【解决方案1】:

    您需要StatefulWidget。在其State 类中,您需要记住是否显示SkillJonglierten。如果显示,您需要在 build() 函数中显示它。否则,您不应在 build() 函数中显示它。所以,这就变成了:https://codepen.io/gazialankus/pen/rNxgBgx

    class _MyHomePageState extends State<MyHomePage> {
      bool isShown;
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text(widget.title),
          ),
          body: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                RaisedButton(
                  child: Text('Show'),
                  onPressed: () {
                    setState(() {
                      isShown = true;
                    });
                  }
                ), 
                if (isShown == true) SkillJonglieren()
              ],
            ),
          ),
        );
      }
    }
    
    

    【讨论】:

    • 谢谢!当我想对齐底部中心的按钮时,我需要做什么?
    • 更改此行mainAxisAlignment: MainAxisAlignment.end。我是在代码笔中完成的。
    • 是的,但我希望在按下按钮时显示小部件,它位于正文的中心或开始:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-23
    • 1970-01-01
    • 2021-05-17
    • 2021-08-22
    • 2021-09-04
    • 2020-07-10
    • 1970-01-01
    相关资源
    最近更新 更多