我使用动画控制器在Flutter中创建了一个交错动画来运行给定的小部件。属性(缩放、旋转)在每个间隔都完美地呈现动画。
\n但是当我去添加翻译属性时,它会抛出“未实现的错误”。
\n我已经用不同的值等进行了重新设计,但无法让它工作。
\n我什至尝试单独运行 .translate 属性,但仍然失败。
\n有谁知道我做错了什么?
\n谢谢!
\nclass _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) 我想在我的专栏中放置一个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) 我无法更改在 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) 我想在我的 flutter 应用程序中使用 API 密钥,并且已经了解到enenved包是隐藏 API 密钥的好工具。
\n问题是我无法让它工作。这就是我所做的:
\n$ flutter pub add envied\n$ flutter pub add --dev envied_generator\n$ flutter pub add --dev build_runner\nRun Code Online (Sandbox Code Playgroud)\nAPI_KEY=1234567890\nRun Code Online (Sandbox Code Playgroud)\nimport \'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}\nRun Code Online (Sandbox Code Playgroud)\nflutter pub run build_runner build\nRun 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) 根据所附图像,我有三个 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) 我收到 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) 我尝试设置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)