簡體   English   中英

Flutter:僅向我的 ListView 中的某些元素添加填充

[英]Flutter: Add padding to only certain elements in my ListView

我正在嘗試創建一個 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);
      }
    },
  ),
);

output 如下所示: 電流輸出

但我希望卡片 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);
}

但這顯然行不通。

您只需要用Padding包裝小部件。 簡單地你可以使用三元像

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

解決了。 我只是將填充添加到我正在構建的項目中,方法是將它包裝在一個容器中,如下所示:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM