[Flutter]横スクロールのリストビュー(ListView)でListTileを使うには?

Flutter

どうも、ちょげ(@chogetarou)です。

横スクロールのリストビューでListTileを使う方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

横スクロールのリストビューでListTileを使うには、まずListTileをSizedBoxの「child」に指定します。

そして、SizedBoxの引数「width」で横幅を設定します。

ListView(
  scrollDirection: Axis.horizontal,
  children: [
    SizedBox(
      width: /*横幅*/,
      child: ListTile(
        title: Text('Item'),
      ),
    ),
  ],
),

これで横スクロールのリストビューでListTileが使えるようになります。

以下は、例です。

ListView(
  shrinkWrap: true,
  scrollDirection: Axis.horizontal,
  children: [
    SizedBox(
      width: 100,
      child: ListTile(
        title: Text('Item'),
      ),
    ),
    SizedBox(
      width: 100,
      child: ListTile(
        title: Text('Item'),
      ),
    ),
    SizedBox(
      width: 100,
      child: ListTile(
        title: Text('Item'),
      ),
    ),
  ],
),

横スクロールのリストビューでListTileが機能しないのは、ListTileが最大限の横幅を確保しようとするからです。

縦スクロールならば、ListTileが横幅を最大限に取ろうとするのは、問題になりません。

ですが、横スクロールだとListTileの挙動が邪魔になります。

なので、横スクロールのリストビューでは、SizedBoxもしくはContainerなどで横幅を設定し、ListTileの横幅を制限します。

コメント

タイトルとURLをコピーしました