我试图在标题旁边创建一个按钮,但是我没有在开始时传递内容,而是尝试动态地进行操作,因此我使用了构造函数,但没有获得调用构造函数时传递的值我一直空着。那么,如何使用构造函数或其他任何方式动态传递参数?这是我正在使用的课程
Grouped_object
答案 0 :(得分:0)
您不能直接在Scaffold中直接调用 Header 类。您必须将其分配给Scaffold的某些属性,例如
Scaffold(
body: Header("OK", "Page1"),
);
,您还可以尝试使用 widget.variable_name 而不是使用美元符号来调用变量值。
Text(widget.title,),
RaisedButton(
child: Text(
widget.buttonTitle,
),
答案 1 :(得分:0)
我认为您想制作可重用的小部件,您犯了一些错误,因此可以将其与以下代码进行比较。下面是完整的工作代码。
import 'package:flutter/material.dart';
void main() => runApp(FirstScreen());
class Header extends StatefulWidget {
final String buttonTitle;
final String title;
Header({this.buttonTitle, this.title});
@override
HeaderState createState() => HeaderState();
}
class HeaderState extends State<Header> {
String buttonTitle;
String title;
@override
Widget build(BuildContext context) {
return Row(children: [
Text("${widget.title}"),
RaisedButton(
child: Text("${widget.buttonTitle}"),
onPressed: () {},
),
]);
}
}
class FirstScreen extends StatefulWidget {
@override
FirstScreenState createState() => FirstScreenState();
}
class FirstScreenState extends State<FirstScreen> {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Header(buttonTitle: "OK", title: "Page1"),
),
body: Header(buttonTitle: "Reuse", title: "Reuse in body"),
),
);
}
}