Flutter 如何从按下的浮动按钮调用类

Flutter 如何从按下的浮动按钮调用类,flutter,Flutter,我一直在尝试使用浮动操作按钮来执行一个类,但我一直在尝试所有操作,但都失败了。这是我的密码: import 'package:flutter/material.dart'; import 'dart:math'; void main() { return runApp( MaterialApp( home: Scaffold( backgroundColor: Colors.white70, appBar: AppBar(

我一直在尝试使用浮动操作按钮来执行一个类,但我一直在尝试所有操作,但都失败了。这是我的密码:

import 'package:flutter/material.dart';
import 'dart:math';

void main() {
  return runApp(
    MaterialApp(
      home: Scaffold(
        backgroundColor: Colors.white70,
        appBar: AppBar(
          centerTitle: true,
          title: Text('Dices'),
          backgroundColor: Colors.teal,
        ),
        body: DicePage(),
        floatingActionButton: FloatingActionButton(
            child: const Icon(Icons.add), onPressed: () {}),
      ),
    ),
  );
}

class DicePage extends StatefulWidget {
  @override
  _DicePageState createState() => _DicePageState();
}

class _DicePageState extends State<DicePage> {
  int leftDiceNum = 1;
  int rightDiceNum = 1;

  void diceRandomizer() {
    setState(() {
      leftDiceNum = Random().nextInt(6) + 1;
      rightDiceNum = Random().nextInt(6) + 1;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Center(
      child: Row(
        children: <Widget>[
          Expanded(
            child: FlatButton(
              onPressed: () {
                diceRandomizer();
              },
              child: Image.asset('images/dice$leftDiceNum.png'),
            ),
          ),
          Expanded(
            child: FlatButton(
              onPressed: () {
                diceRandomizer();
              },
              child: Image.asset('images/dice$rightDiceNum.png'),
            ),
          ),
        ],
      ),
    );
  }
}
导入“包装:颤振/材料.省道”;
导入“dart:math”;
void main(){
返回runApp(
材料聚丙烯(
家:脚手架(
背景颜色:Colors.white70,
appBar:appBar(
标题:对,
标题:文本(“骰子”),
背景颜色:Colors.teal,
),
正文:DicePage(),
浮动操作按钮:浮动操作按钮(
子:const图标(Icons.add),onPressed:({}),
),
),
);
}
类页面扩展StatefulWidget{
@凌驾
_DicePageState createState()=>\u DicePageState();
}
类_DicePageState扩展状态{
int leftDiceNum=1;
int rightdienum=1;
无效随机数发生器(){
设置状态(){
leftDiceNum=Random().nextInt(6)+1;
rightdienum=Random().nextInt(6)+1;
});
}
@凌驾
小部件构建(构建上下文){
返回中心(
孩子:排(
儿童:[
扩大(
孩子:扁平按钮(
已按下:(){
随机数发生器();
},
子级:Image.asset('images/dice$leftDiceNum.png'),
),
),
扩大(
孩子:扁平按钮(
已按下:(){
随机数发生器();
},
子级:Image.asset('images/dice$rightDiceNum.png'),
),
),
],
),
);
}
}

现在的代码是一个简单的骰子应用程序,如果我按下图像,功能DiceRandomizer就会激活,它会随机给出一个1到6之间的数字。然后图像被呈现出来。但我想用浮动操作按钮来实现这一点。

据我所知,这是因为类未定义,请尝试修复代码

import 'package:flutter/material.dart';
import 'dart:math';

void main() {
  return runApp(
    MaterialApp(home: DicePage()),
  );
}

class DicePage extends StatefulWidget {
  @override
  _DicePageState createState() => _DicePageState();
}

class _DicePageState extends State<DicePage> {
  int leftDiceNum = 1;
  int rightDiceNum = 1;

  diceRandomizer() {
    setState(() {
      leftDiceNum = Random().nextInt(6) + 1;
      rightDiceNum = Random().nextInt(6) + 1;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white70,
      appBar: AppBar(
          centerTitle: true,
          title: Text('Dices'),
          backgroundColor: Colors.teal),
      body: Center(
        child: Row(
          children: <Widget>[
            Expanded(
              child: TextButton(
                onPressed: () {
                  diceRandomizer();
                },
                child: Image.asset('images/dice$leftDiceNum.png'),
              ),
            ),
            Expanded(
              child: TextButton(
                onPressed: () {
                  diceRandomizer();
                },
                child: Image.asset('images/dice$rightDiceNum.png'),
              ),
            ),
          ],
        ),
      ),
      floatingActionButton: Row(
        children: [
          FloatingActionButton(
            onPressed: () {diceRandomizer();},
          ),
          FloatingActionButton(
            onPressed: (){diceRandomizer();},
            
          )
        ],
      ),
    );
  }
}
导入“包装:颤振/材料.省道”;
导入“dart:math”;
void main(){
返回runApp(
MaterialApp(主页:DicePage()),
);
}
类页面扩展StatefulWidget{
@凌驾
_DicePageState createState()=>\u DicePageState();
}
类_DicePageState扩展状态{
int leftDiceNum=1;
int rightdienum=1;
随机数发生器(){
设置状态(){
leftDiceNum=Random().nextInt(6)+1;
rightdienum=Random().nextInt(6)+1;
});
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
背景颜色:Colors.white70,
appBar:appBar(
标题:对,
标题:文本(“骰子”),
背景颜色:颜色。青色),
正文:中(
孩子:排(
儿童:[
扩大(
孩子:文本按钮(
已按下:(){
随机数发生器();
},
子级:Image.asset('images/dice$leftDiceNum.png'),
),
),
扩大(
孩子:文本按钮(
已按下:(){
随机数发生器();
},
子级:Image.asset('images/dice$rightDiceNum.png'),
),
),
],
),
),
浮动操作按钮:行(
儿童:[
浮动操作按钮(
onPressed:(){diceRandomizer();},
),
浮动操作按钮(
onPressed:(){diceRandomizer();},
)
],
),
);
}
}
注意

  • 我做了两个浮动动作按钮
  • FlatButton已删除,必须迁移到TextButton

试试看结果,如果有错误,你可以发表评论,我会帮你。

添加标签时,不必在标题或帖子正文中重复该信息。这样做只是多余的噪音。标签就足够了-这里的标签系统工作得非常好,不需要帮助。代码可以工作吗?很抱歉这么晚才回答,这是一个令人兴奋的周末。我还没能让它工作,也许我需要学习多一点(这里是颤振新手),但非常感谢!什么问题?我也是新手,但我想帮助你抱歉花了这么长时间,谢谢你的回复,非常感谢。所以我想做的是使浮动按钮能够像我编程的平面按钮一样工作。但是我真的没有主意了。尝试了不同的方法来调用或移动代码,但它就是不起作用。