美文网首页
flutter不透明组件Opacity和AnimatedOpac

flutter不透明组件Opacity和AnimatedOpac

作者: 一叠纸船 | 来源:发表于2020-08-13 15:18 被阅读0次

这个组件很简单,也一目了然,主要用于控制子节点的不透明度。应用场景除了满足常规的UI 效果还常常用做不可见的占位组件使用。

可以定义的属性除了必须指定的opacity之外,只有alwaysIncludeSemantic属性可以指定对应的值,需要赋bool类型的,默认是false。如果是true,即这个组件包含子节点的Semantics信息。这个Semantics用于描述应用程序,主要帮助视障人士使用。

我写了一个简单的例子:

      Column(
        children: <Widget>[
          Container(
            height: 100,
            color: Colors.red,
          ),
          Opacity(
            opacity: 0.0,
            child: Container(
              height: 100,
              color: Colors.blue,
            ),
          ),
          Opacity(
            opacity: 0.5,
            child: Container(
              height: 100,
              color: Colors.yellow,
            ),
          ),
          Container(
            height: 100,
            color: Colors.orange,
          )
        ],
      )

效果如下:

flutter_opacity.jpg

AnimatedOpacity就是Opacity的动画组件,使用起来也很简单,下面是示例代码:

import 'package:flutter/material.dart';

class OpacityScreen extends StatefulWidget {
  OpacityScreen({Key key}) : super(key: key);

  @override
  _OpacityScreenState createState() => _OpacityScreenState();
}

class _OpacityScreenState extends State<OpacityScreen> {
  bool normal = true;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Opacity')),
      body: Column(
        children: <Widget>[
          Container(
            height: 100,
            color: Colors.red,
          ),
          AnimatedOpacity(
            opacity: normal ? 0.0 : 1.0,
            duration: Duration(milliseconds: 500),
            child: Container(
              height: 100,
              color: Colors.blue,
            ),
          ),
          Opacity(
            opacity: 0.5,
            child: Container(
              height: 100,
              color: Colors.yellow,
            ),
          ),
          Container(
            height: 100,
            color: Colors.orange,
          )
        ],
      ),
      floatingActionButton: FloatingActionButton(
        child: Text('switch'),
        onPressed: () {
          setState(() {
            normal = !normal;
          });
        },
      ),
    );
  }
}

效果图如下:


animated_opacity.gif

这个系列的文章是根据flutter 的 Widget of the week来做的,欢迎大家斧正。

相关文章

  • flutter不透明组件Opacity和AnimatedOpac

    这个组件很简单,也一目了然,主要用于控制子节点的不透明度。应用场景除了满足常规的UI 效果还常常用做不可见的占位组...

  • CSS背景透明度

    opacity:1;----这是不透明opacity:0;----这是全透明opacity:0.7;----这是透...

  • Flutter之Opacity组件

  • 透明度

    一,范围0-1 opacity:1;不透明, opacity:0;全透明。 二, 例如background:rgb...

  • css 属性

    背景 纯色 图片 颜色 1、 颜色值 2 、属性 opacity (n 不透明): 0 透明 1 不透明 边框...

  • RGBA与Opacity区别小解

    opacity会继承父元素的 opacity 属性,而RGBA设置的元素的后代元素不会继承不透明属性。

  • 新增UI属性

    opacity 不透明度属性,可以达到和display=block、visibility=hidden一样的隐藏D...

  • RGBA与OPACITY的区别

    opacity会继承父元素的opacity 属性,而RGBA设置的元素的后代元素不会继承不透明属性。简单来说就是o...

  • Flutter 之Opacity

    使子Widget部分透明的小部件。 此类将其子级绘制到中间缓冲区中,然后将子级混合回到部分透明的场景中。 对于除0...

  • 动画模块

    透明度 opacity: 数字;数字为0~1,为0透明看不见,为1完全不透明

网友评论

      本文标题:flutter不透明组件Opacity和AnimatedOpac

      本文链接:https://www.haomeiwen.com/subject/pcnbdktx.html