listview - Flutter ListView 和 List Widget
问题描述
我不知道这里到底出了什么问题。也许有人可以帮助我。我没有收到任何错误或其他错误消息。手机屏幕是白色的。可能还有另一种方法可以更好地保存和调用列表中的数据。您可以使用这些创建一个额外的文件。我已经尝试了一段时间,也尝试了其他东西,不幸的是没有结果。 顺便说一句,当我不使用列表单独写入数据时,它起作用了。 提前致谢。
import 'package:flutter/material.dart';
class HomeScreen extends StatefulWidget {
@override
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
List<String> comname = [
'Adidas',
'Nike',
'Google',
];
List<String> comsales = [
'200',
'300',
'400',
];
List<String> comheadquarter = [
'Berlin',
'Hamburg',
'München',
];
List<String> comemployee = [
'800',
'850',
'900',
];
@override
Widget build(BuildContext context) {
return Scaffold(.......
),
Padding(
padding: EdgeInsets.only(top: 550, bottom: 50),
child: Container(
child: ListView(
children: <Widget>[
companyCard(
comname[0],
comsales[0],
comheadquarter[0],
comemployee[0],
),
],
scrollDirection: Axis.horizontal,
),
),
),
],
),
),
);
}
}
Widget companyCard(
String name, String sales, String headquarter, String employee) {
return Stack(
children: <Widget>[
Container(
margin: EdgeInsets.symmetric(vertical: 0, horizontal: 15.0),
height: 180,
width: 200,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(28.0),
color: Colors.green,
),
child: Column(
children: <Widget>[
Row(
children: <Widget>[
Padding(
padding: const EdgeInsets.fromLTRB(8.0, 11.0, 11.0, 35.00),
child: Text(
name,
style: TextStyle(
fontSize: 25,
),
),
),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Padding(
padding: const EdgeInsets.all(4.0),
child: Text(
'Sales:',
style: TextStyle(
fontSize: 18,
),
),
),
Padding(
padding: const EdgeInsets.all(4.0),
child: Text(
sales,
style: TextStyle(
fontSize: 18,
),
)),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Padding(
padding: const EdgeInsets.all(4.0),
child: Text(
'Headquarters:',
style: TextStyle(
fontSize: 18,
),
),
),
Padding(
padding: const EdgeInsets.all(4.0),
child: Text(
headquarter,
style: TextStyle(
fontSize: 18,
),
)),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Padding(
padding: const EdgeInsets.all(4.0),
child: Text(
'Employee:',
style: TextStyle(
fontSize: 18,
),
),
),
Padding(
padding: const EdgeInsets.all(4.0),
child: Text(
employee,
style: TextStyle(
fontSize: 18,
),
)),
],
),
],
),
),
],
);
}
解决方案
使脚手架下的填充物更小。也许这会将小部件呈现在页面之外。
使这个值更小
padding: EdgeInsets.only(top: 550, bottom: 50),
给出一个较小的值,例如 50
padding: EdgeInsets.only(top: 50, bottom: 50),
推荐阅读
- css - 当我将 Angular 与 CSS 一起使用时,如何重新编译 Bootstrap 以使 _variables.scss 中的主题颜色发生变化?
- c# - 2D 渲染器阻止粒子系统颜色变化
- tensorflow - 使用 pysintaller 打包 tflite 运行时时出错
- reactjs - 使用 Laravel-react 的单页应用程序
- wordpress - 提高 wordpress rest api 速度
- javascript - 在 Nextjs 中扩展 React.FC 的默认行为
- reactjs - 使用 react-test-renderer 和 typescript 测试 MUI 菜单组件
- python-3.x - 韦尔奇变换以保持尺寸
- api - 如何使用 Dio 或 http 在 Flutter 中通过 GET 请求发送参数
- c# - asp 页面 url 为空