【发布时间】:2020-07-31 17:32:59
【问题描述】:
您好,我是 Flutter 新手,遇到了一个问题。我创建了简单的应用程序以获得更好的解释。在我的 main.dart 中,我调用 button1.dart 中的 Button1()。当我按下按钮时,它应该在 button2.dart 中调用 Button2()。但是第二个按钮没有渲染。我该怎么做?以及如何更改 button2.dart 中的一些数据?例如更改按钮的文本。我将按钮的文本设置为某个变量,当我单击第一个按钮时如何传递它?
谢谢
我的 main.dart 代码
import 'package:flutter/material.dart';
import 'button1.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key}) : super(key: key);
@override
MyHomePageState createState() => MyHomePageState();
}
class MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("My app"),
),
body: Center(
child: Column(
children: <Widget>[
Button1(),
],
),
),
);
}
}
我的 button1.dart 代码
import 'button2.dart';
class Button1 extends StatefulWidget {
@override
_Button1State createState() => _Button1State();
}
class _Button1State extends State<Button1> {
@override
Widget build(BuildContext context) {
return Center(
child: Column(
children: <Widget>[
RaisedButton(
child: Text("button1"),
onPressed: () {
setState(() {
Button2();
});
},
),
],
),
);
}
}
这是我的 button2.dart 代码
class Button2 extends StatefulWidget {
@override
_Button2State createState() => _Button2State();
}
class _Button2State extends State<Button2> {
@override
Widget build(BuildContext context) {
return Center(
child: Column(
children: <Widget>[
RaisedButton(
child: Text("Button2"),
onPressed: () {},
),
],
),
);
}
}
【问题讨论】:
-
究竟想达到什么目的?您要更改一个按钮的文本,还是在第一次按下按钮时显示第二个按钮,还是两者兼而有之?
-
主要是如何显示按钮。但是当我按下按钮时,我还需要更改其他小部件的一些数据。所以两者都是。
标签: android flutter dart flutter-layout