flutter 自定义card阴影效果及card使用

最近在用flutter写web程序,简直是炼狱模式。。然后遇到个需求,原本的Card阴影无法满足产品需求,需要像IOS 那种超级高大上的,似影非影的效果。。(简直分分钟想打死产品)

一开始,当然都是百度了,于是百度到了一个方法:BoxShadow!

于是高高兴兴开干了,代码如下

嗯。。。看上去好像没啥毛病,Y轴方向偏移7,blurRadius:模糊延申14,spreadRadius:不模糊的不要延申,为0

跑到安卓的浏览器上

简直Perfect!!!完工交差。。。(just我以为)

看到测试淫笑的眼神,我就知道了自己的图样图森破,他拿着自己高大上的iPhone给我截了个图:

WTF???我的模糊效果呢,怎么木有了。。

一开始以为是safari模拟器不兼容,然后看了看Card原本的效果,好像也是有模糊的。。于是定位,肯定BoxShadow的问题!只能搜寻源码,名字一目了然:

纳尼??为什么只管了spreadRadius,blurRadius视而不见。。

没办法,只能再从官方的Card入手了,查看build方法,这里提示一下,看源码的时候可以查看自己需要的线索,比如Card里只有elevation方法是和阴影有关的,就顺着elevation寻找,找到build方法

再看Material还有哪些参数

这不是都有嘛。。。再往下就是renderObject相关的东西了,于是就没再深究了,再修改一下代码

这下终于Perfect了!

补充:下面看下flutter card使用

//关键代码

new Card(
    elevation: 15.0, //设置阴影
    shape: const RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(14.0))), //设置圆角
    child: new Column( // card只能有一个widget,但这个widget内容可以包含其他的widget
     children: [
      new ListTile(
       title: new Text('标题',
         style: new TextStyle(fontWeight: FontWeight.w500)),
       subtitle: new Text('子标题'),
       leading: new Icon(
        Icons.restaurant_menu,
        color: Colors.blue[500],
       ),
      ),
      new Divider(),
      new ListTile(
       title: new Text('内容一',
         style: new TextStyle(fontWeight: FontWeight.w500)),
       leading: new Icon(
        Icons.contact_phone,
        color: Colors.blue[500],
       ),
      ),
      new ListTile(
       title: new Text('内容二'),
       leading: new Icon(
        Icons.contact_mail,
        color: Colors.blue[500],
       ),
      ),
     ],
    ),
    ),

总结

到此这篇关于flutter 自定义card阴影效果及card使用的文章就介绍到这了,更多相关flutter 自定义card阴影内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • flutter 自定义card阴影效果及card使用

    最近在用flutter写web程序,简直是炼狱模式..然后遇到个需求,原本的Card阴影无法满足产品需求,需要像IOS 那种超级高大上的,似影非影的效果..(简直分分钟想打死产品) 一开始,当然都是百度了,于是百度到了一个方法:BoxShadow! 于是高高兴兴开干了,代码如下 嗯...看上去好像没啥毛病,Y轴方向偏移7,blurRadius:模糊延申14,spreadRadius:不模糊的不要延申,为0 跑到安卓的浏览器上 简直Perfect!!!完工交差...(just我以为) 看到测试淫笑

  • Flutter自定义弹窗Dialog效果

    本文实例为大家分享了Flutter自定义弹窗Dialog效果的具体代码,供大家参考,具体内容如下 主要是基于系统的dialog机制做一些使用限制和自定义UI的优化 核心代码: class CustomDialog {     static void show(BuildContext context, Widget Function(BuildContext ctx, void Function() dismiss)builder, {bool cancellable = false}) {  

  • Flutter 自定义Drawer 滑出位置的大小实例代码详解

    Flutter开发过程中,Drawer控件的使用频率也是比较高的,其实有过移动端开发经验的人来说,Flutter中的Drawer控件就相当于ios开发或者Android开发中的"抽屉"效果,从侧边栏滑出导航菜单.对于Flutter中的Drawer控件的常规用法就不多介绍,网上大把的教程. 那么本篇博文分享一个网上教程不多的一个知识点,那就是自定义Drawer的滑出位置的大小,自定义Drawer滑出位置就需要修改一个double的widthPercent属性,widthPercent一般

  • 100 行代码实现Flutter自定义TabBar的示例代码

    Flutter 的确很强大,但美中不足的是生态还有待完善,没有出现像前端的 Antd 或 Element 那样全能的基础 UI 库. 由此带来的直接影响是开发效率提不上去,需要耗费大量的时间精力在基础组件的封装上. 官方的 TabBar 不满足需求,又没有合适的轮子,只好自己造轮子啦.接下来带你一步步实现自定义 TabBar-- 一.目标和效果 需求目标是: 这个页面不要 material 左侧统一的返回键和 Title 在右侧有取消按钮,点取消即返回 点击 Tab 可以实现 content 切

  • Flutter自定义搜索框效果

    本文实例为大家分享了Flutter自定义搜索框效果的具体代码,供大家参考,具体内容如下 效果 实现方式 import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import 'package:keduo/base/baseSize.dart'; import 'package:keduo/utils/icon_utils.dart'; class SearchBarWidget extends Stateful

  • Flutter自定义Appbar搜索框效果

    本文实例为大家分享了Flutter自定义Appbar搜索框效果的具体代码,供大家参考,具体内容如下 首先看一下实现本次实现的效果. 本来想直接偷懒从flutter pub上找个能用的使用起来,但是看了下发现都与目前ui效果相差很大,于是乎决定自己实现一个.整体的话比较简单,本来也是为了练手而做的. 为了方便处理statusbar的高度适配,于是乎直接依托于Appbar进行了实现,这样就可以不用处理状态栏适配了. class _HotWidgetState extends State<HotWid

  • Flutter自定义圆盘取色器

    本文实例为大家分享了Flutter自定义圆盘取色器的具体代码,供大家参考,具体内容如下 下面展示一些 内联代码片. 圆盘取色器 效果图 完整代码 import 'dart:math'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; class CircularColorFinder extends Sta

  • Flutter自定义年月日倒计时

    本文实例为大家分享了Flutter自定义年月日倒计时的具体代码,供大家参考,具体内容如下 因项目中的订单页需要一个定时器,比如下单后需要进行倒计时,等倒计时完后,订单状态自动关闭. 如图: 这里显示等17分25秒就是我们所需要做的功能. 项目里还有其他倒计时类型,比如年月日,天之类的, 先上一个工具类: //时间格式化,根据总秒数转换为对应的 hh:mm:ss 格式   static String constructTime(int seconds) {     int day = second

  • Flutter自定义底部导航栏的方法

    本文实例为大家分享了Flutter自定义底部导航栏的具体代码,供大家参考,具体内容如下 文件结构: main.dart import 'package:flutter/material.dart'; import 'pages/tabs.dart';   void main() => runApp(new MyApp());   class MyApp extends StatelessWidget {   @override   Widget build(BuildContext contex

  • flutter自定义InheritedProvider实现状态管理详解

    目录 InheritedWidget简单数据驱动模型 1. 数据存储 2. 变更通知 3. 使用方法 InheritedWidget简单数据驱动模型 基于InheritedWidget,实现简单的数据驱动模型,模型结构如下: 1. 数据存储 使用 InheritedWidget,新建 InheritedProvider import 'package:flutter/material.dart'; class InheritedProvider<T> extends InheritedWidg

随机推荐