Acho que adicionar cor ao contêiner está cobrindo o efeito de tinta
https://docs.flutter.io/flutter/material/InkWell/InkWell.html
Este código parece funcionar
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,
),
),
apenas clique no quadrado do meio.
Edit: Encontrei o relatório do bug. https://github.com/flutter/flutter/issues/3782
Na verdade, isso é o esperado, embora devamos atualizar a documentação para torná-lo mais claro.
O que está acontecendo é que a especificação do material diz que os respingos são na verdade tinta no material. Então, quando salpicamos, o que fazemos é literalmente fazer com que o widget Material faça o splash. Se você tem algo em cima do Material, nós espirramos embaixo dele e você não consegue ver.
Eu queria adicionar um widget "MaterialImage" que conceitualmente imprime sua imagem no Material também para que os respingos fiquem sobre a imagem. Poderíamos ter um MaterialDecoration que faz algo semelhante para uma decoração. Ou podemos fazer com que o próprio Material receba uma decoração. No momento é preciso uma cor, mas poderíamos estendê-la para uma decoração inteira. Não está claro se é realmente compatível com as especificações do material ter um material com gradiente, então não tenho certeza se devemos fazer isso.
No curto prazo, se você só precisa de uma solução alternativa, pode colocar um Material no topo do recipiente, com o material configurado para usar o tipo "transparência", e então colocar a tinta bem dentro dele.
--hixie
Atualização: Hixie fundiu uma nova solução Ink no ano passado. O Ink oferece uma maneira conveniente de respingar nas imagens.
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)),
),
)
),
),
),
)
Observação: não testei o novo Ink Widget. Copiei o código de ink_paint_test.dart e os documentos da classe 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
si mesmo e deixar de fora oContainer
.