如何将“final function“变量””分配给dart中“textButton”中的“onPressed”方法?

irlmq6kh  于 2023-11-14  发布在  其他
关注(0)|答案(1)|浏览(96)

这是我的代码:

import 'package:flutter/material.dart';
import 'package:take3/constants.dart';
import 'package:take3/screens/login/login_screen.dart';
import 'package:take3/screens/signup/signup_screen.dart';

class RoundedButton extends StatelessWidget {
  final String text;
final Function press; **//this is the variable!!!**
  final Color color, textColor;
  const RoundedButton({
    super.key,
    required this.text,
    required this.press,
    this.color = kPrimaryColor,
    this.textColor = Colors.white,
  });

  @override
  Widget build(BuildContext context) {
    Size size = MediaQuery.of(context).size;
    return Container(
      margin: EdgeInsets.symmetric(vertical: 10),
      width: size.width * 0.8,
      child: ClipRRect(
        borderRadius: BorderRadius.circular(29),
        child: TextButton(
          style: TextButton.styleFrom(
            backgroundColor: color,
            padding: EdgeInsets.symmetric(vertical: 20, horizontal: 40),
          ),
          onPressed: (press) {} **// here is the issue!!!**
              ),
            );
          },
          child: Text(
            text,
            style: TextStyle(color: textColor),
          ),
        ),
      ),
    );
  }
}

字符串
在“onPressed”中写最后一个函数“press”的正确方法是什么?
请帮帮忙,我在挣扎,🥺
我试着写“新闻”,但它没有工作。
注意:我正在使用“Android Studio Giraffe| 2022.3.1 Patch 2”on MacOS. flutter version:flutter 3.13.9 dart version:3.1.5

ax6ht2ek

ax6ht2ek1#

有很多方法可以调用TextButton的函数,尝试其中一种方法。

final Function press;

字符串

  1. onPressed: () => press(),
  2. onPressed: () {press();},
  3. onPressed: press,
    第三种方法是只有当函数与onPressed具有相同的类型时。在TextButton中,onPressed具有Function()?类型,并且您的函数类型也必须是Function()?。(这仅适用于第三种方法)
    TextButton的完整代码示例:
TextButton(
  onPressed: () {press();},
  child: const Text("Button"),
)


更多示例和说明请参见文档:https://api.flutter.dev/flutter/material/TextButton-class.html

相关问题