小编Kdo*_*don的帖子

如何让 Transform.translate 发挥作用 Flutter

我使用动画控制器在Flutter中创建了一个交错动画来运行给定的小部件。属性(缩放、旋转)在每个间隔都完美地呈现动画。

\n

但是当我去添加翻译属性时,它会抛出“未实现的错误”。

\n

我已经用不同的值等进行了重新设计,但无法让它工作。

\n

我什至尝试单独运行 .translate 属性,但仍然失败。

\n

有谁知道我做错了什么?

\n

谢谢!

\n
class _AnimatedFlyInShakeState extends State<AnimatedFlyInShake>\n    with SingleTickerProviderStateMixin {\n  late AnimationController _controller;\n  late Animation<double> _rotate, _scale, _scale2;\n  late Animation<Offset> _move;\n\n  @override\n  void initState() {\n    _controller = AnimationController(\n      duration: Duration(milliseconds: 700),\n      vsync: this,\n    );\n\n    _rotate = Tween<double>(begin: 0.20, end: 1.0).animate(CurvedAnimation(\n        parent: _controller,\n        curve: Interval(0.0, 0.70, curve: Curves.easeInOut)));\n\n    _scale = Tween<double>(begin: 0.0, end: 1.0).animate(CurvedAnimation(\n        parent: _controller,\n        curve: Interval(0.0, 0.60, curve: Curves.elasticInOut)));\n\n    _scale2 = Tween<double>(begin: 1.0, end: …
Run Code Online (Sandbox Code Playgroud)

animation flutter

5
推荐指数
1
解决办法
1695
查看次数

如何在 Column 小部件内实现 switch 语句?扑

我想在我的专栏中放置一个switch 语句来决定在我的FLUTTER 应用程序中构建哪些子组件组合。

在我的具体情况下,我创建了一个具有 4 种不同可能状态(AnimationEnum.None、AnimationEnum.etc)的枚举,每种状态都会触发不同的子级构建组合。

我可以通过在每个可能的小部件上方编写 if 语句来使其正常工作,但这显然是一种低效的做事方式,并且希望简化我的代码。

我觉得我已经很接近了,但还不能完全到达那里。这是带有占位符小部件的代码的简化版本:

谢谢!

              child: Container(
                  
                    child: Column(
                        mainAxisAlignment: MainAxisAlignment.center,
                        crossAxisAlignment: CrossAxisAlignment.stretch,
                        children: [

                        switch(widget._cardAnimType)

                  case AnimationEnum.None: {
                  Widget1('args'),
                  Widget2('args'),
                  Widget3('args'),
                  //etc
                  break;
                  }
                    case AnimationEnum._card1Correct: {
                  Widget1('args'),
                  Widget2('args'),
                  Widget3('args'),
                  //etc
                  break;
                  }
                    ///more switch statements here...
                    ]
                  ),
              ),
            ),
Run Code Online (Sandbox Code Playgroud)

switch-statement dart flutter

4
推荐指数
1
解决办法
5943
查看次数

如何使用 flutter 包的lottie 更改lottie 动画的属性?

我无法更改在 flutter 中设置的 Lottie 动画的属性。(我特别想改变颜色。)

根据包自述文件,我知道我可以使用 ValueDelegate 类来执行此操作。

自述文件

//From the README

    return Lottie.asset(
      'assets/Tests/Shapes.json',
      delegates: LottieDelegates(
        text: (initialText) => '**$initialText**',
        values: [
          ValueDelegate.color(
            const ['Shape Layer 1', 'Rectangle', 'Fill 1'],'
// UNSURE WHERE TO OBTAIN THESE ABOVE PROPERTY VALUES //
            value: Colors.red,
          ),
         

Run Code Online (Sandbox Code Playgroud)
\\here is my code - I am unsure how to obtain the appropriate values for keyPath, value and callBack properties, in the ValueDelegate.color.

                  child: Lottie.asset(
                    'assets/lottie/audio.json',
                    delegates: LottieDelegates(
                      text: (initialText) => '**$initialText**',
                      values: [
                        ValueDelegate.color(
                          const …
Run Code Online (Sandbox Code Playgroud)

animation flutter

4
推荐指数
1
解决办法
7746
查看次数

在 Flutter 中设置 ENVIED 包以隐藏 API 密钥时出现问题

我想在我的 flutter 应用程序中使用 API 密钥,并且已经了解到enenved包是隐藏 API 密钥的好工具。

\n

问题是我无法让它工作。这就是我所做的:

\n
    \n
  1. 安装了3个包:
  2. \n
\n
$ flutter pub add envied\n$ flutter pub add --dev envied_generator\n$ flutter pub add --dev build_runner\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 在根文件夹中创建一个名为 .env 的文件来存储密钥
  2. \n
\n
API_KEY=1234567890\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 在 lib/env/env.dart 中创建了一个类
  2. \n
\n
import \'package:envied/envied.dart\';\n\npart \'env.g.dart\';\n\n@Envied(path: \'.env\')\nabstract class Env {\n  @EnviedField(varName: \'API_KEY\')\n  static final apiKey = _Env.apiKey;\n}\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 然后运行:
  2. \n
\n
flutter pub run build_runner build\n
Run Code Online (Sandbox Code Playgroud)\n

然后我得到这个错误:

\n
[SEVERE] envied_generator:envied on lib/env/env.dart:\n\nEnvied can only handle …
Run Code Online (Sandbox Code Playgroud)

obfuscation environment-variables api-key flutter

4
推荐指数
1
解决办法
1880
查看次数

如何在 Flutter 中将具有不同大小的 TextSpan 子项沿中间对齐?

根据所附图像,我有三个 TextSpan 子对象 - 中间的 TextSpan 对象具有更大的字体大小。

我希望所有三个 TextSpan 对象都以背景父对象为中心。

当字体大小相同时,它们会沿中心水平对齐。然而,当我增加一个 TextSpan 的字体大小时,只有较大的文本对象保持居中,而较小的两种字体落在较大字体的基础上)...

我尝试了不同的对齐属性,但无法解决。这可以用 TextSpan 文本来完成吗?

谢谢!

截屏

    return Container(
      decoration: BoxDecoration(
        color: Colors.amber,
      ),
        alignment: Alignment.center,
        child: RichText(
          textAlign: TextAlign.center,
          text: TextSpan(
            children: [
              TextSpan(text: 'Let\s', style: TextStyle(
                fontSize: 30,
              )),
              TextSpan(text: '500', style: TextStyle(fontSize: 80), ),
              TextSpan(text: 'Words', style: TextStyle(
                fontSize: 30,
              )),
            ]
          ),
        )
        );

Run Code Online (Sandbox Code Playgroud)

text flutter

2
推荐指数
1
解决办法
1107
查看次数

尽管调用了 super.dipose(),但未能在 Flutter 中调用 super.dispose 时出现错误?

我收到 super.dispose 无法调用的错误,即使我在重写的方法中调用 super.dipose 并且不确定为什么会发生此错误。

我尝试过不同的方法,例如将 super.dispose 包装在 WidgetsBinding.instance!.addPostFrameCallback((timeStamp) { }) 中,但这不起作用。

有什么想法可能会发生这种情况吗?有什么方法可以强制执行/修复它?

(下面我从 sqlite 数据库中选择随机单词,一切都运行良好)。

谢谢你!

代码

import 'dart:math';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:learn_to_read/Pages/WordMatch/answerManager.dart';
import 'package:learn_to_read/Pages/WordMatch/pageProgressBar.dart';
import 'package:learn_to_read/Pages/WordMatch/pageProgressManager.dart';
import 'package:learn_to_read/animations/colorChange.dart';
import 'package:learn_to_read/animations/customScrollPhysics.dart';
import 'package:learn_to_read/database/databaseManager.dart';
import 'package:provider/provider.dart';
import 'package:sqflite/sqflite.dart';
import 'contents.dart';
import 'homeBar.dart';

class WordMatch extends StatefulWidget {

  @override
  _WordMatchState createState() => _WordMatchState();
}

class _WordMatchState extends State<WordMatch> with ChangeNotifier {
  List<String> _originalList = [];
  List<String> _selectedList = [];

  void newPage(int i) {
    context.read<AnswerManager>().currentPage = i;
    context.read<PageProgressManager>().incrementProgressDots(i);
  }

  Future<List<String>> …
Run Code Online (Sandbox Code Playgroud)

flutter

1
推荐指数
1
解决办法
6029
查看次数

flutter just_audio_background 错误:任务 ':app:processDebugMainManifest' 执行失败

我尝试设置just_audio_background但出现了一堆错误(如屏幕截图所示),当我遵循 main/AndroidManifest.xml 的修订并且不确定为什么似乎完全按照插件概述的步骤进行操作时。

我收到的警告是:

警告

运行应用程序时出现的异常原因是:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processDebugMainManifest'.
> com.android.manifmerger.ManifestMerger2$MergeFailureException: Error parsing /Users/mac/Documents/flutter_projects/zense_timer_project/zense_timer/android/app/src/main/AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)

这是 AndroidManifest.xml


<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
    <application
        android:label="zense_timer"
        android:name="${applicationName}"
        android:icon="@mipmap/ic_launcher">
        <activity
            android:name="com.ryanheise.audioservice.AudioServiceActivity"
            android:exported="true"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">
            <!-- Specifies an Android theme to apply to this Activity as soon as
                 the Android process has started. This theme is visible to the user
                 while the Flutter UI initializes. After that, this …
Run Code Online (Sandbox Code Playgroud)

android-manifest flutter just-audio

0
推荐指数
1
解决办法
364
查看次数