高程不适用于颤振材料

Posted

技术标签:

【中文标题】高程不适用于颤振材料【英文标题】:Elevation not working on flutter material 【发布时间】:2019-04-17 08:41:31 【问题描述】:

我想做一个看起来像 的应用程序,在角落里有那个切片。我可以制作那张幻灯片,但我的应用程序没有那个阴影。

我将我的前层包裹在一个具有高度的材料宽盖内,如示例MDC-104。

这是我的代码

import 'package:flutter/material.dart';

class ShapeLayer extends StatelessWidget 
  final Widget frontLayer;
  final Widget backLayer = Container(
    color: Colors.green,
  );

  ShapeLayer(Key key, this.frontLayer) : super(key: key);

  @override
  Widget build(BuildContext context) 
    return Stack(
      children: <Widget>[
        backLayer,
        Material(
          elevation: 60.0,
          shape: BeveledRectangleBorder(
            borderRadius: BorderRadius.only(topLeft: Radius.circular(46.0)),
          ),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.stretch,
            children: <Widget>[
              Expanded(child: frontLayer),
            ],
          ),
        ),
      ],
    );
  

我是这样使用的:

return Scaffold(
  appBar: appBar,
  body: ShapeLayer(frontLayer: Container(//Some stuff here)

它看起来像这样:

如您所见,它看起来很平坦,完全没有高程。

我该如何解决这个问题?

谢谢!

编辑:正如@SnakeyHips 建议的那样,这是我的应用程序,海拔为 16.0

【问题讨论】:

【参考方案1】:

将您的海拔从60.0 更改为16.0 应该这样做:

import 'package:flutter/material.dart';

class ShapeLayer extends StatelessWidget 
  final Widget frontLayer;
  final Widget backLayer = Container(
    color: Colors.green,
  );

  ShapeLayer(Key key, this.frontLayer) : super(key: key);

  @override
  Widget build(BuildContext context) 
    return Stack(
      children: <Widget>[
        backLayer,
        Material(
          elevation: 16.0,
          shape: BeveledRectangleBorder(
            borderRadius: BorderRadius.only(topLeft: Radius.circular(46.0)),
          ),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.stretch,
            children: <Widget>[
              Expanded(child: frontLayer),
            ],
          ),
        ),
      ],
    );
  

【讨论】:

我试过了,很难说,但我会说它看起来几乎一样。查看我的编辑 它就在那里,只是很难用那种绿色来分辨。如果您将颜色更改为更浅的颜色,它会更明显。 你是对的,如果我放一个浅绿色的背景,我会看到它,但它是非常微妙的东西。你知道有什么方法可以让影子变强吗? 高程量决定了阴影的“强度”,并且由 Material Design 指南决定,所以如果任何高程值没有达到你想要的强度,那么我不确定还有什么建议.高程的概念是在 Shrine 应用程序中显示一个微妙的阴影,任何比这更暗的东西都会违反 Material Design。正如我所说,我建议背面层选择浅色。

以上是关于高程不适用于颤振材料的主要内容,如果未能解决你的问题,请参考以下文章

颤振未找到材料小部件

颤振 - 直接在材料应用程序中访问 MediaQuery.of(context).size [重复]

库比蒂诺相当于“材料”

默认操作栏高程

铸造模型不适用于 getX 颤振

颤振医生不适用于命令提示符或 PowerShell 窗口?