首页 > 其他分享 >Flutter中GridTile中图像上方的InkVell波纹

Flutter中GridTile中图像上方的InkVell波纹

时间:2024-01-05 10:35:09浏览次数:33  
标签:InkWell GridTile child Dart splashColor onTap InkVell Flutter


Flutter中GridTile中图像上方的InkVell波纹_开发语言

Flutter中GridTile中图像上方的InkVell波纹

我认为这是在图像上显示波纹效果的更好方法。

Ink.image(
    image: AssetImage('sample.jpg'),
    fit: BoxFit.cover,
    child: InkWell(
        onTap: () {},
    ),
),

使用Stack,我们可以将Material和InkWell带到图像上。要拉伸材质,我们将使用Positioned.fill小部件。

Stack(
  children: <Widget>[
    Image( ... ),
    Positioned.fill(
      child: Material(
        color: Colors.transparent,
        child: InkWell(
          onTap: () { ... },
        ),
      ),
    ),
  ],
);

我们创建了这个简单的小部件,以在任何给定孩子的上方绘制墨水反应。

class InkWrapper extends StatelessWidget {
  final Color splashColor;
  final Widget child;
  final VoidCallback onTap;

  InkWrapper({
    this.splashColor,
    @required this.child,
    @required this.onTap,
  });

  @override
  Widget build(BuildContext context) {
    return Stack(
      children: <Widget>[
        child,
        Positioned.fill(
          child: Material(
            color: Colors.transparent,
            child: InkWell(
              splashColor: splashColor,
              onTap: onTap,
            ),
          ),
        ),
      ],
    );
  }
}
  • 优秀的方法。即使在AspectRatio下也可以使用。如果可以使用FadeInImage会更好。
SizedBox(
  height: 200,
  child: Ink(
    decoration: BoxDecoration(
      image: DecorationImage(
        image: ExactAssetImage("chocolate_image"),
        fit: BoxFit.cover,
      ),
    ),
    child: InkWell(
      onTap: () {},
      splashColor: Colors.brown.withOpacity(0.5),
    ),
  ),
)
Material(  
  child : InkWell(          
      child : YourWidget    
  )      
)

最后

这里也为想要学习Flutter的朋友们准备了两份学习资料《Flutter Dart语言编程入门到精通》《Flutter实战》,从编程语言到项目实战,一条龙服务!!

《Flutter Dart 语言编程入门到精通》

  • 第一章 Dart语言基础
  • 第二章 Dart 异步编程
  • Flutter中GridTile中图像上方的InkVell波纹_开发语言_02

  • 第三章 异步之 Stream 详解
  • 第四章 Dart标准输入输出流
  • Flutter中GridTile中图像上方的InkVell波纹_flutter_03

  • 第五章 Dart 网络编程
  • 第六章 Flutter 爬虫与服务端
  • Flutter中GridTile中图像上方的InkVell波纹_flutter_04

  • 第七章 Dart 的服务端开发
  • 第八章 Dart 调用C语言混合编程
  • 第九章 LuaDardo中Dart与Lua的相互调用
  • Flutter中GridTile中图像上方的InkVell波纹_跳槽_05

《Flutter实战:第二版》

  • 第一章:起步
  • 第二章:第一个Flutter应用
  • 第三章:基础组件
  • 第四章:布局类组件
  • 第五章:容器类组件

Flutter中GridTile中图像上方的InkVell波纹_跳槽_06

  • 第六章:可滚动组件
  • 第七章:功能型组件
  • 第八章:事件处理与通知
  • 第九章:动画
  • 第十章:自定义组件
  • Flutter中GridTile中图像上方的InkVell波纹_javascript_07

  • 第十一章:文件操作与网络请求
  • 第十二章:Flutter扩展
  • 第十三章:国际化
  • 第十四章:Flutter核心原理
  • 第十五章:一个完整的Flutter应用
  • Flutter中GridTile中图像上方的InkVell波纹_flutter_08

标签:InkWell,GridTile,child,Dart,splashColor,onTap,InkVell,Flutter
From: https://blog.51cto.com/u_16163480/9110255

相关文章

  • 安卓环境配置选项和flutter 滑动控制
    isDebug=truehostDebug=trueshowUmengToast=false安卓环境中的这几个配置选项isDebug=true:表示是否启用调试模式。如果设置为true,应用程序将以调试模式运行,这通常允许开发人员执行调试操作并查看更详细的日志信息。hostDebug=true:表示是否启用主机调试。如果设置为true,可能......
  • Flutter学习笔记(一)配置环境
    主题本文主题,就是介绍如何配置flutter当前环境win10as2022.1.1版本jdk11配置过程下载fluttersdk首先,从官网下载一个flutter的sdk,下载地址博主当前使用版本为–flutter_windows_3.7.8-stable配置fluttersdk环境(1)下载sdk后,解压,进入bin目录,复制完整路径,打开系统环境变量页面,在Path栏......
  • 『Flutter』开篇
    什么是FlutterFlutter是由Google开发的开源框架Flutter用于构建跨平台的移动应用程序Flutter它允许开发者使用同一套代码来同时为IOS和Android平台开发应用程序Flutter使用Dart语言开发,特点是拥有高性能的渲染引擎和丰富的组件库Flutter特性跨平台能力:Flu......
  • flutter ios swift avplayer 播放器自动播放下一集
    使用监听监听结束事件importFoundationimportAVKitimportMediaPlayerimportFlutterclassFlutterAVPlayerView:NSObject,FlutterPlatformView{privatevar_flutterAVPlayerViewController:AVPlayerViewControllerprivatevarurlArray:[URL]=[]......
  • ACTF flutter逆向学习
    参考了许多大佬的博客,在此特别诚挚感谢oacia大佬和其他大佬的博客和指导!1.flutter和apk基础结构介绍首先下载附件,是一个apk文件,用jadx打开可以看见flutter字样,而flutter是一种目前比较流行的android框架,很多app都是用的该框架构建,而该原生框架是建立在app的native层。Androi......
  • flutter IOS 原生交互同一个插件多个方法调用
    由于代码比价简单直接上代码ios/Runner/AppDelegate.swiftimportUIKitimportFlutter@UIApplicationMain@objcclassAppDelegate:FlutterAppDelegate{overridefuncapplication(_application:UIApplication,didFinishLaunchingWithOptionslaunchOption......
  • flutter 添加原生IOS 播放器
    定义播放器FlutterAVPlayer.swiftimportFoundationimportAVKitimportMediaPlayerimportFlutterclassFlutterAVPlayer:NSObject,FlutterPlatformView{privatevar_flutterAVPlayerViewController:AVPlayerViewController;init(frame:CGRect,......
  • Flutter常见库使用
    1、网络库diodio:^5.4.0import'package:dio/dio.dart';finaldio=Dio();voidgetHttp()async{finalresponse=awaitdio.get('https://dart.dev');print(response);}2、JSON解析json_serializable:^6.7.1json_annotation:^4.8.1bu......
  • idea flutter dart 代码不跳转 analyze 不起作用
    查看本地dartwheredart/opt/homebrew/bin/dart/Users/jimogangdan/soft/flutter/bin/dart两个版本不一样/opt/homebrew/bin/dart--versionDartSDKversion:3.1.3(stable)(TueSep2614:25:132023+0000)on"macos_arm64"/Users/jimogangdan/soft/flutter/b......
  • flutter常用的设计模式
    单例模式(SingletonPattern):确保一个类只有一个实例,并提供一个全局访问点。工厂模式(FactoryPattern):定义一个创建对象的接口,但让子类决定具体实例化哪个类;常用于创建组件、复杂对象等场景。抽象工厂模式(AbstractFactoryPattern):提供一个创建一系列相关或相互依赖对象的接口,而......