当前位置: 首页 > 知识库问答 >
问题:

因克韦尔不显示涟漪效应

司徒钱青
2023-03-14
class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text(widget.title),
      ),
      body: new Center(
        child: new InkWell(
          onTap: (){print("tapped");},
          child: new Container(
            width: 100.0,
            height: 100.0,
            color: Colors.orange,
          ),
        ),
      ),
    );
  }
}

我也尝试将Inkwell放入容器中,但徒劳无功。

共有1个答案

杨高翰
2023-03-14

我认为给容器添加颜色是为了掩盖墨水效果

https://docs.flutter.io/flutter/material/inkwell/inkwell.html

这个代码似乎有效

  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,
    ),
  ),

这实际上是预期的,尽管我们应该更新文档以使其更清楚。

材料说明书上说飞溅的实际上是材料上的墨水。所以当我们飞溅的时候,我们所做的就是让材料小部件来飞溅。如果你在材料上面有什么东西,我们在它下面飞溅,你看不到。

我想添加一个“MaterialImage”小部件,从概念上把它的图像打印到材料中,这样喷溅就会覆盖到图像上。我们可以有一个材料装饰,做一些类似的装饰。或者我们可以让材料本身做一个装饰。现在它需要一种颜色,但我们可以扩展到整个装饰。不过,还不清楚是否真的与材料规格兼容,所以我不确定我们是否应该这样做。

更新:Hixie去年合并了一个新的墨水解决方案。墨水提供了一种在图像上喷溅的方便方法。

  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)),
          ),
        )
      ),
    ),
  ),
)

请注意:我没有测试新的Ink小部件。我处理了ink_paint_test.dart和Ink类文档中的代码

https://github.com/hixie/flutter/blob/1f6531984984f52328e66c0cd500a8d517964564/packages/flutter/test/material/ink_paint_test.dart

 类似资料:
  • 最小SDK为21。当我点击回收器适配器中的cardview时,不会产生连锁反应,只会进入下一个屏幕。recyclerview位于片段内部。 适配器代码,其中我对每个项目进行了onClick。

  • 我想在我的应用程序中使用水波涟漪效果,这种效果会在触摸区域反复出现,我已经访问了站点中可用的示例代码,但涟漪似乎被像素化了。 谁能帮我,实现活水涟漪效应?。我发现很难实施它。

  • 我一直在为Lollipop(API 21)开发一个应用程序。 XML:

  • 好的,所以我知道涟漪效应是唯一可用的Lollipop和以上。但是,当设置ImageButton时,我仍然无法获得像“常规”按钮一样的涟漪效果,只显示一个图像(和透明bg)。。。 我添加了AppCompat v7,并将第二个布局放在我的drawable/layout-v21文件夹中,该文件夹中有以下按钮: 但背景是灰色的,纹波(也是灰色的)无法定制。 所以,如果我只需要一个很好的ripple dra

  • 我正在尝试将涟漪效果添加到RecyclerView的项目中。我上网看了一下,但找不到我需要的东西。我想这应该是一个自定义效果。我尝试了rodroid:background属性到RecyclerView本身,并将其设置为“?android:selectableitembackground”,但它不起作用。: 这是我试图添加效果的RecyclerView:

  • 我使用以下xml drawable作为我的recyclerview列表项的背景。 触摸选择器。xml 触摸选择器底部。xml 在列表项中,我正在使用触摸选择器。xml在我的列表_item _quote中如下所示。xml 我有另一个xml绘图touch_selector_dark.xml和touch_selector_base_dark.xml 在我的recycler视图适配器中,我根据索引在这两个