首页 > 解决方案 > 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,
                      ),
                    )),
              ],
            ),
          ],
        ),
      ),
    ],
  );
}

标签: listviewflutter

解决方案


使脚手架下的填充物更小。也许这会将小部件呈现在页面之外。

使这个值更小

padding: EdgeInsets.only(top: 550, bottom: 50),

给出一个较小的值,例如 50

padding: EdgeInsets.only(top: 50, bottom: 50),

推荐阅读