如何在 GetX 中使用 AnimationController 而不是使用 StatefulWidget 和 SingleTickerProviderStateMixin

时间:2021-05-20 22:36:05

标签: flutter dart

我有一个 initState() 方法并包含 AnimationController 作为以下代码:

_controller = AnimationController(
      vsync: this,
      duration: const Duration(
        milliseconds: 2500,
      ),
    );

例如我想使用以下方式:

import 'package:get/get.dart';
import 'package:flutter/material.dart';

class ControllerViewModel extends GetxController {
  AnimationController _controller;
  @override
  void onInit() {
    // TODO: implement onInit
    super.onInit();
    _controller = AnimationController(
      vsync: this,
      duration: const Duration(
        milliseconds: 2500,
      ),
    );
  }
}

但当然我发现 The argument type 'ControllerViewModel' can't be assigned to the parameter type 'TickerProvider'.

有错误

那么有没有办法在 GetX 状态管理方式中使用这个 AnimationController

1 个答案:

答案 0 :(得分:1)

我找到了一个解决方案,只需添加 with SingleGetTickerProviderMixin 作为完整代码,如下所示:

import 'package:get/get.dart';
import 'package:flutter/material.dart';

class ControllerViewModel extends GetxController with SingleGetTickerProviderMixin {
  AnimationController _controller;
  @override
  void onInit() {
    // TODO: implement onInit
    super.onInit();
    _controller = AnimationController(
      vsync: this,
      duration: const Duration(
        milliseconds: 2500,
      ),
    );
  }
}