如何制作一个按钮,使图像抖动,并在有人按下时突出显示?

莎莎莫尔巴克斯(Shazamo Morebucks)

我有一个按钮,上面有一个孩子的图像。我想要这样,以便在按下按钮时,图像更改为另一张图像,并且当用户停止按下按钮时,图像又回到了原始图像。

基本上,我希望它像凸起的按钮一样工作,但是具有用于凸起和按下状态的自定义图像。

以下是相关代码:

class LoginButton extends StatefulWidget {
  @override
  _LoginButtonState createState() => new _LoginButtonState();
}

class _LoginButtonState extends State<LoginButton> {
  void _onClicked() {
    setState(() {
      //I don't know what I should put here to cause the image to redraw 
      //only on button press

    });
  }

  @override
  Widget build(BuildContext context) {
    var assetImage = new AssetImage("assets/loginscreen/btn.png");
    var image = new Image(image: assetImage, height: 50.0, width: 330.0);
    return new Container(
      height: image.height,
      width: image.width,
      child: new FlatButton(
        onPressed: _onClicked,
        child: new ConstrainedBox(
          constraints: new BoxConstraints.expand(),
          child: image,
        ),
      ),
    );
  }
}
阿齐扎

您可以将默认图像定义为_LoginButtonState此类的属性

class _LoginButtonState extends State<LoginButton> {
String _myImage = "assets/loginscreen/btn.png"; ... }

现在您的_onClick方法应该包含状态的更改,只需_myImage使用if条件即可将字符串更改为新图像

    void _onClicked() {
        setState(() {
          if (_myImage == "assets/loginscreen/btn.png"){
            _myImage = "<my new asset>";   //change myImage to the other one
             }   
          else {
                 _myImage = "assets/loginscreen/btn.png"; //change myImage back to the original one
                }
        });
      }

并在您的小部件构建中:

var assetImage = new AssetImage(_myImage);

================================================== ========================

更新资料

我已经设法完成了与尝试使用的目标类似的操作GesutureDetector,在这里我用颜色对其进行了测试,但是它与更改图像的链接应该没有什么不同,尽管我认为重新绘制图像的速度比更改图像的速度慢颜色。

这是我使用的完整代码:

import 'package:flutter/material.dart';

void main() {
  runApp(new MaterialApp(
    home: new MyApp (),
  ));
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => new _MyAppState();
}

class _MyAppState extends State<MyApp> {
  var _myColor = Colors.blue;


  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text ("Tap me!"),
        centerTitle: true,
      ),
      body: new GestureDetector(
        onTapDown:(TapDownDetails details) { setState(() {
      _myColor = Colors.orange;
    });
        },
        onTapUp: (TapUpDetails details) {
          setState(() {
            _myColor = Colors.blue;
          });
        },

        child: new Container (
          color: _myColor,
        ),
      ),
    );
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Java中单击按钮时,有人知道如何从另一个类运行方法吗?

按下按钮时,如何模拟按下的另一个按钮?

有人知道按下X时如何关闭对话框窗口吗?

在iOS中按下按钮时如何显示图像?

按下按钮时,应该显示一个数字,并在日期选择器中对其进行计数

在ng-bootstrap中按下按钮时显示一个小的内联删除按钮

隐藏所有div并在单击多个按钮时显示一个div

在JavaFX中按下按钮时如何显示图像

如何制作按钮,当按下按钮时,该按钮会消失并显示一个新的div

每当我按下按钮时,如何制作一个刷新的面板?

Mysql + php,如何创建一个链接,当您按下“标题”时显示记录中的所有数据

有没有办法在有人接听电话时显示通知?

当有人将鼠标悬停在图像上并显示一些文字时,如何使图像模糊?

按下按钮时显示下一个div

按下按钮时如何突出显示按钮

制作一个带有“下3张图像”的按钮

在 Ubuntu 下,我如何放置一个对所有人通用的 shell 别名命令?

快速按下按钮时在下一个视图中显示不同的图像?

有人可以建议如何在一个字段为 True 时删除 one2many 行中的删除按钮

按下时隐藏 UIButton,然后在按下另一个按钮时显示它

如何使用 Tkinter 制作一个计数器,显示按下按钮的次数

当我按下另一个按钮时,如何显示按下按钮的视觉效果?

在文本框中接受一个名称,当有人点击打印按钮时打印它

按下按钮后如何显示另一个窗口?甜蜜警报2

当鼠标移到按钮上以突出显示它时,按钮周围应该有一个黑色边框

有人可以给我一个想法,如何制作在 Symfony4 中触发 onDelete(remove) 的事件

按下后退按钮时如何显示第一个片段?

在 HTML 中按下 <input> 时如何使按钮出现?你如何制作一个在 HTML 中添加文本的按钮?

有人可以解释一下如何用帕斯卡制作一个程序,它将每隔一个数字添加一次,直到总和为 100?