[Flutter]InkWellはなぜMaterialで包まないとエラーになるのか(No Material Widget found)

Widgetをタップしたときのフィードバック効果を出すことの出来る「InkWell」というWidgetがありますが、

The highlight is a rectangle the size of the box.

この「InkWell」を使う際には、「Material」で包まないとエラーになります。つまり、こうじゃなくて

こうしてしまうと、、

エラーになります。

公式にも書いてありました。

なぜそうなのかということ、実はフィードバック効果を実際に描画するのは「InkWell」ではなくて、それを包んでいる「Material」が担うからということのようですね。

The Material widget is where the ink reactions are actually painted. This matches the material design premise wherein the Material is what is actually reacting to touches by spreading ink.

(「Material」ウィジェットは、実際にインクの反応を描く場所です。これは、タッチに反応してインクを広げるのが「Material」であるというマテリアルデザインの前提に合致しています。)

InkWellはあくまでタップしたときのフィードバック効果を出すための、Materialウィジェットにおける領域を示しているだけのようです。このあたりはFlutter内部の決まり事なので仕方ないですね。

A rectangular area of a Material that responds to touch.

(詳しくは、以下の動画で解説していますので、よろしければご覧下さい)

こんな記事も読まれています

おすすめコンテンツ




Flutter(フラッター)


みんプロ作成アプリ




TOP