【问题标题】:Flutter: Add padding to only certain elements in my ListViewFlutter:仅向我的 ListView 中的某些元素添加填充
【发布时间】:2023-01-20 02:37:46
【问题描述】:

我正在尝试创建一个 ListView 并且只希望填充第一个项目。这是代码:

Expanded(
     child: ListView.builder(
       padding: EdgeInsets.all(16),
       itemCount: card.length,
       itemBuilder: (context, index) {
       if (index == 0) {
           return MyCard.buildRecordCard(
            card[index], context);
       } else {
          return MyCard.buildRecordsCards(
            card[index], context, index);
      }
    },
  ),
);

输出如下所示:

但我希望卡片 2...n(即索引!= 0)不被填充并延伸到屏幕的末尾。是这样的:

if (index == 0) {
    padding: EdgeInsets.all(16),
    return MyCard.buildRecordCard(
      card[index], context);
} else {
    padding: 0,
    return MyCard.buildRecordsCards(
       card[index], context, index);
}

但这显然行不通。

【问题讨论】:

    标签: flutter user-interface listview padding listtile


    【解决方案1】:

    您只需要用 Padding 包装小部件。 简单地你可以使用三元像

    itemBuilder: (context, index) {
      return Padding(
          padding: index == 0 ? EdgeInsets.all(16) : EdgeInsets.zero,
          child: MyCard.buildRecordCard(card[index], context));
    },
    

    【讨论】:

      【解决方案2】:

      解决了。 我只是将填充添加到我正在构建的项目中,方法是将它包装在一个容器中,如下所示:

      Container(
              padding: EdgeInsets.fromLTRB(16, 16, 16, 0),
              child: ...ListTile...
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-02
        • 1970-01-01
        相关资源
        最近更新 更多