【问题标题】:Flutter ListView - center items if not expanding beyond screenFlutter ListView - 如果不扩展超出屏幕,则居中项目
【发布时间】:2020-08-18 21:15:47
【问题描述】:

我有一个水平 ListView,根据应用程序状态,列表中可能有 1-2 项或许多项。

现在,只要只有少数可用且不需要滚动,我希望将项目居中。到目前为止,我的项目总是粘在左侧,正如您在具有石灰背景颜色的 ListView 中看到的那样。我想要的那个居中,即使 2 或 3 个项目是可见的,但更多,它应该滚动,然后从左侧开始列出项目。

    return Container(
        color: Colors.lime,
        child: ListView(
            shrinkWrap: true,
            scrollDirection: Axis.horizontal,
            children: listItems));

项目本身是这样的:

  Widget getPersonCircleWidget(BuildContext context, Person p) {
    return Container(
      color: Colors.transparent, //yellow,
      child: Padding(
        padding: const EdgeInsets.fromLTRB(10, 0, 10, 0),
        child: CircularProfileAvatar('',
            child: Image(
                fit: BoxFit.cover,
                image:
                    UserPhotoManager.singleton.getUserProfilePhoto(p.userId)),
            borderColor: colorCirclePhotoBorder,
            borderWidth: 2,
            elevation: 10,
            radius: 40,
            onTap: () {
               ....
        }),
      ),
    );
  }

知道如何解决这个问题吗?

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    只需用Center 小部件包装您的ListView

    Center(
      child: ListView(
        shrinkWrap: true,
        scrollDirection: Axis.horizontal,
        children: listItems.map<Widget>((a) => CircleAvatar(
          child: Text(a))).toList(),
        ),
    ),
    

    ListView 超出屏幕上的可用空间时,它会自动左对齐。

    试试dartpad

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-22
      • 2021-01-22
      • 2011-09-26
      • 1970-01-01
      • 2019-08-28
      • 2022-06-11
      • 2019-05-03
      相关资源
      最近更新 更多