web-dev-qa-db-ja.com

フラッター:マージンクリッピングを防止

私は水平を持っていますListView.builder。添付の画像は私のUIを示しています。

listView(赤)。 itemBuilderボタンウィジェット(青);マージン(緑)。

enter image description here

リストを余白なしで端までスクロールすると、ボタンが画面の端に表示されます。

marginまたはpaddingを介してContainerまたはListViewを追加すると、UIが期待どおりに移動します。

ただし、リストをスクロールすると、リスト内のアイテムがこのマージンでクリップされ、画面の端ではなくマージンの境界までスクロールします。

スクロール時にリストをクリップしないインセットを作成するにはどうすればよいですか?

8
Josh Kahane

ListViewは、その目的のためにpaddingプロパティを所有しています。

次のコードは、最初の要素を8だけオフセットします。ただし、そのパディングは、ListViewPadding内にラップするのとは対照的に、リストのコンテンツをクリップしません。

   ListView.builder(
      padding: EdgeInsets.only(top: 8.0),
      itemBuilder: (context, index) {
        return Container(
          height: 42.0,
          color: index % 2 == 0 ? Colors.red : Colors.blue,
        );
      },
    ),
13
Rémi Rousselet