okaryo.log

FlutterのCard内でInkWellを使用した際にタップエフェクトをカード範囲内にのみ適用させる | okaryo.log

FlutterのCard内でInkWellを使用した際にタップエフェクトをカード範囲内にのみ適用させる

    #Flutter

はじめに

Flutterを使って個人開発をしている際、Cardをタップできるようにしたい場面があった。

タップエフェクトを与えたかったのでInkWellを利用したところ、タップエフェクトがCardからはみ出て四角く表示されてしまった。

はみ出ているタップエフェクト

これをエフェクトをカード範囲内のみに適用させる方法をメモとして残しておく。

対応方法

CardclipBehaviorプロパティにClip.hardEdgeを適用させることでタップエフェクトをカード範囲内のみに適用させることができる。

Card(
  clipBehavior: Clip.hardEdge,
  child: InkWell(
    onTap: () {},
    child: SomeWidget(),
  ),
),

範囲内のみのタップエフェクト

注意点

今回のような要素がはみ出す場面にはClipは有効な手段だが、要素をクリップする際にはパフォーマンスコストがかかるとのこと。

クリップする要素数が多かったり、パフォーマンスが求められる際は気をつけるようにしたい。


関連記事
最新記事
プロモーション

This site uses Google Analytics.