Saya pikir menambahkan warna ke wadah menutupi efek tinta
https://docs.flutter.io/flutter/material/InkWell/InkWell.html
Kode ini sepertinya berfungsi
body: new Center(
child: new Container(
child: new Material(
child: new InkWell(
onTap: (){print("tapped");},
child: new Container(
width: 100.0,
height: 100.0,
),
),
color: Colors.transparent,
),
color: Colors.orange,
),
),
cukup klik kotak tengah.
Edit: Saya menemukan laporan bug. https://github.com/flutter/flutter/issues/3782
Ini sebenarnya seperti yang diharapkan, meskipun kami harus memperbarui dokumen untuk membuatnya lebih jelas.
Apa yang terjadi adalah spesifikasi Material mengatakan bahwa percikan sebenarnya adalah tinta pada Material. Jadi saat kita melakukan splash, yang kita lakukan adalah kita memiliki widget Material melakukan splash. Jika Anda memiliki sesuatu di atas Materi, kami memercik di bawahnya, dan Anda tidak dapat melihatnya.
Saya ingin menambahkan widget "MaterialImage" yang secara konseptual mencetak gambarnya ke Material juga sehingga percikan akan melewati gambar. Kita bisa memiliki MaterialDecoration yang melakukan hal serupa untuk Dekorasi. Atau kita bisa meminta Material itu sendiri mengambil dekorasi. Saat ini membutuhkan warna, tapi kita bisa memperluasnya ke mengambil keseluruhan dekorasi. Tidak jelas apakah itu benar-benar material-spec-kompatibel untuk memiliki material dengan gradien, jadi saya tidak yakin apakah kita harus melakukannya.
Dalam jangka pendek, jika Anda hanya membutuhkan solusi, Anda dapat meletakkan Material di atas wadah, dengan material yang disetel untuk menggunakan jenis "transparansi", dan kemudian meletakkan tinta dengan baik di dalamnya.
--hixie
Pembaruan: Hixie menggabungkan solusi Tinta baru tahun lalu. Tinta memberikan cara yang nyaman untuk memercikkan gambar.
testWidgets('Does the Ink widget render anything', (WidgetTester tester) async {
await tester.pumpWidget(
new Material(
child: new Center(
child: new Ink(
color: Colors.blue,
width: 200.0,
height: 200.0,
child: new InkWell(
splashColor: Colors.green,
onTap: () { },
),
),
),
),
);
Material(
color: Colors.grey[800],
child: Center(
child: Ink.image(
image: AssetImage('cat.jpeg'),
fit: BoxFit.cover,
width: 300.0,
height: 200.0,
child: InkWell(
onTap: () { },
child: Align(
alignment: Alignment.topLeft,
child: Padding(
padding: const EdgeInsets.all(10.0),
child: Text('KITTEN', style: TextStyle(fontWeight: FontWeight.w900, color: Colors.white)),
),
)
),
),
),
)
Harap Dicatat: Saya tidak menguji Widget Tinta baru. Saya mengatasi kode dari ink_paint_test.dart dan dokumen kelas Ink
https://github.com/Hixie/flutter/blob/1f6531984984f52328e66c0cd500a8d517964564/packages/flutter/test/material/ink_paint_test.dart
https://github.com/flutter/flutter/pull/13900
https://api.flutter.dev/flutter/material/Ink-class.html
Material
itu sendiri dan mengabaikanContainer
.