Flutter Widget 之 Opacity

559 阅读1分钟

在Flutter中,很容易就能完全移除一个Widget,你只需要rebuild中移除就行。

但是,如果你想要一个Widget消失,但它原来的位置仍然被保留呢?这样其他图标就能留在它们原来的位置上

就如iOS里面的的hidden,Android里面的invisible

试一下Opacity Widget,只要用Opacity包在你的Widget外,并把值设置为0

final widgets = [
    MyWidget(Colors.green),
    Opacity(
        opacity:0.0,
        MyWidget(Colors.blue),
    ),
    MyWidget(Colors.yellow),
];

如果你想要使用Opacity将一个子Widget和另一个层叠在一起

Stack(
    children: [
        MyImageWidget(),
        Opacity(
            opacity:0.25,
            child:MyGraientWIdget(),
        ),
    ]
)

或者你想创建一个动态的Opacity

有一个叫做AnimatedOpacity Widget,你只要给Opacity添加一个时长,当你重新rebuild时,它就会自动的创建动画了

Stack(
    children: [
        MyImageWidget(),
        AnimatedOpacity(
            duration:_myDuration,
            opacity:_myOpacity,
            child:MyGraientWIdget(),
        ),
    ]
)

setState(()=>myOpacity = 0.0)

如果想了解有关Opacity的内容,或者关于Flutter的其他功能,请访问flutter.io

原文翻译自视频:视频地址