[Flutter]リストビュー(ListView)の要素にタップ処理を追加するには?

Flutter

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

リストビューの要素にタップ処理を追加する方法を紹介します。

スポンサーリンク

方法

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

リストビューの要素にタップ処理を追加する方法は、3つあります。

GestureDetector

1つ目は、GestureDetectorを使う方法です。

リストビューの要素全てをGestureDetectorでラップし、引数「onTap」にタップした時の処理を指定します。

ListView(
  children: [
    GestureDetector(
      onTap: () {/*タップ処理*/},
      child: /*item*/,
    ),
    GestureDetector(
      onTap: () {/*タップ処理*/},
      child: /*item*/,
    ),
    GestureDetector(
      onTap: () {/*タップ処理*/},
      child: /*item*/,
    ),
  ],
),

InkWell

2つ目は、InkWellを使う方法です。

リストビューの要素全てをInkWellでラップし、引数「onTap」にタップした時の処理を指定します。

ListView(
  children: [
    InkWell(
      onTap: () {/*タップ処理*/},
      child: /*item*/,
    ),
    InkWell(
      onTap: () {/*タップ処理*/},
      child: /*item*/,
    ),
    InkWell(
      onTap: () {/*タップ処理*/},
      child: /*item*/,
    ),
  ],
),

ListTile

プログラマー, プログラミング, コード, 仕事, コンピューター

3つ目は、ListTileを使う方法です。

ListTileウェジェットは、引数「onTap」でタップ処理を指定することが出来ます。

ListView(
  children: [
    ListTile(
      onTap: () {/*タップ処理*/},
    ),
    ListTile(
      onTap: () {/*タップ処理*/},
    ),
    ListTile(
      onTap: () {/*タップ処理*/},
    ),
  ],
),

まとめ

リストビューの要素にタップ処理を追加する方法は、次の3つです。

  • GestureDetectorのchildに指定
  • InkWellのchildに指定
  • ListTileの引数「onTap」で指定

コメント

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