Есть ли решение, чтобы заставить мою кнопку вспышки работать должным образом? флаттер - PullRequest
1 голос
/ 05 января 2020

По сути, у меня есть кнопка, которую я сделал во Flare, и она должна сделать анимацию, тогда я нажимаю ее! Это работает хорошо, но анимация запускается каждый раз, когда я нажимаю в любом месте своего приложения, а не только на кнопку. Есть ли способ сделать анимацию только при нажатии в области кнопок? Я использую GestureDetector для обработки нажатий.

https://i.stack.imgur.com/ZBjmz.jpg

Мой код:

import 'package:flutter/material.dart';
import 'package:flare_flutter/flare_actor.dart';  
import 'package:vibrate/vibrate.dart';

void main() => runApp(MaterialApp(
  home: InvalidButton(),
));

class InvalidButton extends StatefulWidget {
  @override
  _InvalidButtonState createState() => _InvalidButtonState();
}

class _InvalidButtonState extends State<InvalidButton> {
  var _type = FeedbackType.heavy;
  final FlareControls controls = FlareControls();
  void _playAnimation(){
    controls.play('invalid');
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.pink[50],
      body: Container(
        child: GestureDetector(
        onTap: () {
          setState(() {
            _playAnimation();
            Vibrate.feedback(_type);
          });
        },
        child: FlareActor(
          'assets/invalid_button.flr',
          animation: 'invalid',
          alignment: Alignment.center,
          fit: BoxFit.contain,
          controller: controls,
          ),
      ),
      ),
    );
  }
}

Я новичок ie так будем рады любой помощи!

1 Ответ

0 голосов
/ 05 января 2020

У вас есть место вокруг кнопки в редакторе Rive? Если это так, go в режиме конструктора, нажмите Artboard, а затем «подогнать содержимое». Это должно удалить лишнее пространство. Затем оберните ваш FlareActor с помощью SizedBox и установите его размер следующим образом:

SizedBox(
  width: 100,
  height: 100,
  child: FlareActor(),
)

Это должно сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...