我在一列中有一个图像和一个文本.

这就是我现在得到的.

enter image description here

密码

List<Container> getMediaItem(List<Media> mediaItems) {
  List<Container> mediaContainers = [];
  for (Media media in mediaItems) {
    mediaContainers.add(
      Container(
        padding: EdgeInsets.only(left: 8, right: 8, bottom: 8),
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            media.image,
            Container(
              color: Colors.black,
              padding: EdgeInsets.only(top: 8, bottom: 8),
              child: Text(media.title),
            )
          ],
        ),
      ),
    );
  }
  return mediaContainers;
}

如果你知道如何解决它,请分享.

更新: 完整代码(我正在try 创建一个嵌套滚动视图来显示媒体项目库,如Netflix):

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Live Tree',
      theme: ThemeData(
        brightness: Brightness.dark,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Row(
            mainAxisAlignment: MainAxisAlignment.center,
            mainAxisSize: MainAxisSize.max,
            children: <Widget>[
              Text("LiveTree"),
              Icon(Icons.check_circle_outline),
            ],
          ),
        ),
        body: HomePage(),
      ),
    );
  }
}

class HomePage extends StatefulWidget {
  HomePage({Key key}) : super(key: key);

  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  @override
  Widget build(BuildContext context) {

    List<Column> getMediaItem(List<Media> mediaItems) {
      List<Column> mediaContainers = [];
      for (Media media in mediaItems) {
        mediaContainers.add(
          Column(
            mainAxisSize: MainAxisSize.min,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              media.image,
              Container(
                color: Colors.black,
                padding: EdgeInsets.only(top: 8, bottom: 8),
                child: Text(media.title),
              )
            ],
          ),
        );
      }
      return mediaContainers;
    }

List<Widget> getCategoryRows(List<CategoryModel> categoryModels) {
      List<Widget> categoryRows = [];
      for (CategoryModel category in categoryModels) {
        final mediaItemsForCategory = getMediaItem(category.media);
        categoryRows.add(
          ListView(scrollDirection: Axis.horizontal,
            children: mediaItemsForCategory,
          ),
        );
      }
      return categoryRows;
    }

    Widget gallerySection = Column(
      mainAxisSize: MainAxisSize.min,
      children: getCategoryRows(mockCategoryDataSet),
    );

    return Scaffold(
      body: ListView(
        children: <Widget>[
              gallerySection,
        ],
      ),
    );
  }

推荐答案

Column(
  crossAxisAlignment: CrossAxisAlignment.stretch,
  children: [
    media.image,
    Container(
      col或: Col或s.black,
      padding: EdgeInsets.only(top: 8, bottom: 8),
      child: Text(media.title),
    ),
  ],
);

Column(
  children: [
    media.image,
    Container(
      col或: Col或s.black,
      padding: EdgeInsets.only(top: 8, bottom: 8),
      child: Center(
        child: Text(media.title),
      ),
    ),
  ],
);

Dart相关问答推荐

从 Dart 中的工厂构造函数返回 null 是否可以接受?

如何为屏幕设置不同的主题?

在 Flutter 中检测键盘事件

那么在 Flutter 中缓存最简单的方法是什么?

从列表中删除项目后更新 UI

Flutter-创建一个倒计时(countdown)小部件

在调试和生产模式之间切换

未定义命名参数child.在 Center() 构造函数中

有没有更好的方法来找出文件或目录是否存在?

如何在 Dart 中创建我们自己的metadata元数据?

如何在dart中获得一周的开始或结束

如何在 Dart 中使用 char 类型?

VS Code 首选项的位置

在 Dart 中是否允许在 for 循环中等待?

如何在 Dart 中执行相当于 setTimeout + clearTimeout 的操作?

你如何在 Dart 中打印美元符号 $

如何在 base64 中编码 Dart 字符串?

在 Dart 中没有换行符的 print()?

getter 和 setter 如何改变 Dart 中的属性?

如何在 Dart 中执行运行时类型判断?