flutter - 不透明度值的更改未反射(reflect)在应用程序中

标签 flutter dart flutter-layout

我正在尝试制作视频播放器。我正在使用Stack()在视频顶部显示一排图标按钮。我想让这些图标在一定时间后像在YouTube移动应用中一样消失。

我使用了AnimatedOpacity()小部件,但如果我将它们设置为可见,则图标保留在屏幕上;如果从一开始就将它们设置为不可见,则图标仍会保留在屏幕上。它们的不透明度永远不会改变。有人可以引导我吗?

Positioned.fill(
  child: AnimatedOpacity(
    opacity: _isVisible ? 1.0 : 0.0,
    duration: Duration(seconds: 3),
    child: GestureDetector(
      onTap: () {
        setState(() {
          _isVisible = !_isVisible;
        });
        // Future.delayed(Duration(seconds: 4), () {
        //   setState(() {
        //     _isVisible = false;
        //   });
        // });
      },
      child: Container(
          height: (MediaQuery.of(context).size.width /
              _controller.value.aspectRatio),
          width: double.infinity,
          child: PlayerControls(controller: _controller)),
    ),
  ),
)

我希望图标在3秒钟后消失,但是那没有发生。

最佳答案

您可以这样做:

            double opacityLevel = 1.0;

            Positioned.fill(
              child: AnimatedOpacity(
                opacity: opacityLevel,
                duration: Duration(seconds: 3),
                child: GestureDetector(
                  onTap: () {
                    setState(() => opacityLevel = opacityLevel == 0 ? 1.0 : 0.0);
                    // Future.delayed(Duration(seconds: 4), () {
                    //   setState(() {
                    //     _isVisible = false;
                    //   });
                    // });
                  },
                  child: Container(
                      height: (MediaQuery.of(context).size.width /
                          _controller.value.aspectRatio),
                      width: double.infinity,
                      child: PlayerControls(controller: _controller)),
                ),
              ),
            )

关于flutter - 不透明度值的更改未反射(reflect)在应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57775264/

相关文章:

flutter - 如何在使 child 居中的同时拉伸(stretch)柱子

flutter - 如何在复选框上显示AlertDialog单击

Dart 文档说要在 Atom dartlang 设置中设置 Flutter SDK 路径,但不存在这样的选项

flutter - 滚动 Controller 未附加到任何 ScrollView (滑动器)

flutter - Flutter 容器中的图标间距

flutter 换行文本而不是溢出

java - better_player 或 exoplayer 抛出异常 OMX.MTK.VIDEO.DECODER.AVC

dart - 带有文本标签的 float 操作按钮。 flutter

flutter 火力基地 I/BufferQueueProducer queueBuffer : slot 0 is dropped, handle=0x79c7c5ec00

flutter - 使用 SliverAppBar flutter 设计这个动画