【问题标题】:Show app bar or a flat button on screen tap在屏幕点击上显示应用栏或平面按钮
【发布时间】:2019-09-27 16:14:41
【问题描述】:

我有一个视频播放器,并且有一个自定义按钮可以返回。我想在屏幕上显示该按钮,点击并在 1 或 2 秒后隐藏。可以是一个透明的应用栏,在屏幕上点击和隐藏,并且该应用栏包含一个自定义按钮

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    我假设您能够创建 GestureDetector 或类似的东西,它会向您显示包含后退按钮的 AppBar

    之后你需要做的就是:

    bool _showControls = false;
    
    _showAndHideControls() {
      setState(() {
        _showControls = true; // show controls the moment user tapped on screen
      });
    
      Timer(Duration(seconds: 2), () {
        setState(() {
          _showControls = false; // after 2 seconds, hide the controls 
        });
      });
    }
    

    【讨论】:

    • 我可以,但是由于您没有共享任何代码,我不确定如何向您展示该代码的放置位置。
    • 警察,在非常基本的应用程序中,您可以通过点击屏幕来显示应用程序栏。稍后我会将其实现到代码中。
    • 目前,我不在电脑前,所以我会在使用时显示。
    • 你能帮我解决这个问题吗?这是我在这个平台上提出的问题但我没有得到回答(stackoverflow.com/questions/58115011/…)我只是因为这个而搞砸了
    • 我添加了一个简单的答案给你看。看看吧。
    【解决方案2】:

    输出:


    完整代码:

    void main() => runApp(MaterialApp(home: YourPage()));
    
    class YourPage extends StatefulWidget {
      @override
      _YourPageState createState() => _YourPageState();
    }
    
    class _YourPageState extends State<YourPage> {
      bool _showControls = false; // set it to false initially
    
      _showAndHideControls() {
        // show controls the moment user tapped on screen
        setState(() => _showControls = true);
    
        // after 2 seconds, hide the controls
        Timer(Duration(seconds: 2), () {
          setState(() => _showControls = false);
        });
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: _showControls ? AppBar(title: Text("AppBar")) : null,
          body: Center(
            child: RaisedButton(
              child: Text("Click me"),
              onPressed: _showAndHideControls,
            ),
          ),
        );
      }
    }
    

    【讨论】:

    • 谢谢警察,这就是我想要的。如果我有视频播放器,我想点击视频播放器的屏幕来打开这个只包含后退按钮的应用栏?
    • @Developer 你可以处理 WillPopScope 内部的逻辑。我不在电脑上,所以目前无法为您提供太多帮助。
    • 让我给你一个场景 我有一个全屏视频播放器,屏幕左上方有一个后退按钮 我想在用户点击屏幕时隐藏按钮,该按钮应该出现2 秒后消失。这就是我需要做的一切。我有按钮,每件事都可以正常工作,但我需要先隐藏那个按钮并在屏幕上点击。
    猜你喜欢
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    相关资源
    最近更新 更多