我正在尝试创建一个非常简单的应用程序,当点击中心小部件时,列表中的元素会显示出来。
这是我的代码:
import 'package:flutter/material.dart';
import 'dart:math';
void main() => runApp(
MaterialApp(home: MyApp()),
);
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Welcome to Flutter',
home: Scaffold(
backgroundColor: Colors.white,
appBar: AppBar(
title: Text('Welcome to Flutter'),
),
body: Center(),
),
);
}
}
class picker extends StatefulWidget {
@override
_pickerState createState() => _pickerState();
}
class _pickerState extends State<picker> {
List yourList = ["Yes", "No", "Maybe"];
int randomIndex;
_pickerState() {
int randomIndex = Random().nextInt(yourList.length);
}
@override
Widget build(BuildContext context) {
return Center(
child: TextButton(
onPressed: () {
setState(() {
print(yourList[randomIndex]);
});
},
child: Text('$randomIndex'),
),
);
}
}
没有显示任何错误,但同时,我的目标没有达到,因为没有显示任何文本,即使我添加了这个代码打印(yourList[randomIndex]),也不会在终端中打印任何内容;。我如何显示文本,并使打印出现?
尝试使用<code>这个。randomIndex=Random().nextInt(yourList.length) 。
否则,您将在初始化类时声明一个不同的局部变量。
下次尝试通过在初始化之外设置默认值来调试此错误,以检查是否存在类似问题,例如您的初始化没有进入您的状态。
我还建议您将类名更改为CamelCase,以避免混淆,这样人们就可以看到初始化类时的代码。这是一篇关于样式代码的dart文章。
两个错误:
变量
: int randomIndex;
_pickerState() {
// you declared a local variable here and you were using value of variable you declared on top
int randomIndex = Random().nextInt(yourList.length);
}
这是工作代码,您可以简单地复制粘贴它:
class _PickerState extends State<Picker> {
List yourList = ["Yes", "No", "Maybe"];
int randomIndex;
_pickerState() {
randomIndex = Random().nextInt(yourList.length);
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: TextButton(
onPressed: () {
_pickerState();
setState(() {
print(yourList[randomIndex]);
});
},
child: Text('$randomIndex'),
),
),
);
}
}
快速提示:尝试使用<code>大写
另一种解决方案是设置
randomIndex = Random().nextInt(yourList.length);
在setState((){)中,如下所示。
import 'package:flutter/material.dart';
import 'dart:math';
void main() => runApp(
MaterialApp(home: MyApp()),
);
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Welcome to Flutter',
home: Scaffold(
backgroundColor: Colors.white,
appBar: AppBar(
title: Text('Welcome to Flutter'),
),
body: picker(),
),
);
}
}
class picker extends StatefulWidget {
@override
_pickerState createState() => _pickerState();
}
class _pickerState extends State<picker> {
List yourList = ["Yes", "No", "Maybe"];
int randomIndex = 0;
@override
Widget build(BuildContext context) {
return Center(
child: TextButton(
onPressed: () {
setState(() {
randomIndex = Random().nextInt(yourList.length);
});
},
child: Text(yourList[randomIndex]),
),
);
}
}
要获得起始文本,需要在一个单独的函数中取出setState,如下所示:
class _pickerState extends State<picker> {
List yourList = ["Yes", "No", "Maybe"];
String buttonText = "Initial Text";
int randomIndex = 0;
void _newRandomIndex() {
setState(() {
randomIndex = Random().nextInt(yourList.length);
buttonText = yourList[randomIndex];
});
}
@override
Widget build(BuildContext context) {
return Center(
child: TextButton(
onPressed: _newRandomIndex,
child: Text(buttonText),
),
);
}
}
我想在左边部分显示个人资料图像,中间部分显示名称和公司(一个在另一个下面),右边部分显示列表图块内的评论和评级。我能够正确显示图像,评论和评级,但文本不显示。我想实现这一点: 图片和评级之间的空白是我想要显示文本的地方(姓名和公司,一个在另一个下面)。不知道我在这里错过了什么。 下面的代码片段: 在我看来,这似乎是一个返回
有状态小部件被定义为在其生命周期内改变其状态的任何小部件。但是,将作为它的一个子元素是非常常见的做法。如果作为其子元素之一,,它不是变成有状态的吗? 我试图将文档作为代码的一部分进行查看,但无法弄清楚如何具有作为其子级,并且仍然保持。 Flutter中有状态和无状态小部件之间的关系和区别是什么?
我想在API调用时在flutter中显示全屏加载视图。但是当我在脚手架体中添加加载小部件时,它出现在appbar和底部导航器之后。 我花了很多时间在全屏显示加载视图。另外,我希望在API调用时防止后退操作。
我试图在用户登录后显示我的json响应。当用户输入正确的信息时,它成功地在我的应用程序中显示响应。但是当用户在这里输入错误的凭证时,应用程序会崩溃,这是当用户输入错误信息时我的json响应。它应该显示状态=0在我的应用程序显示(或任何我想显示的响应 这是当用户按下登录按钮时我的API调用 } 我的模型类 然后在这里,我显示我的响应,当用户输入正确的凭据时,该响应成功执行。但是在输入错误的凭据时崩溃
问题内容: 在Android中,每个子类都有一个方法,可让您修改对象的可见性 设置可见性有3个选项: 可见:在布局内渲染可见 看不见:隐藏,但留下的间隙等于可见时将占据的间隙 消失:隐藏,并将其完全从布局中删除。这是因为如果它和人 Flutter中的小部件是否具有与上述等同的功能? 快速参考:https : //developer.android.com/reference/android/vie
在Android中,每个子类都有一个方法,它允许您修改对象的可见性 设置可见性有3个选项: 可见:在布局中呈现可见 invisible:隐藏,但会留下一个间隙,该间隙相当于在可见时所占的位置 gone:隐藏并将其完全从布局中删除。就好像它的和是 Flutter中的Widgets是否有与上面等价的东西? 有关快速参考:https://developer.android.com/reference/a