我以此作为扩展和折叠扩展瓦片的参考------- Flutter - 选择项目后折叠扩展瓦片
我想要的是,如果我打开一个扩展图块并且用户单击另一个扩展图块,则其他打开的扩展图块应该关闭。
import 'package:flutter/material.dart';
import 'package:meta/meta.dart';
void main() {
runApp(new ExpansionTileSample());
}
class ExpansionTileSample extends StatefulWidget {
@override
ExpansionTileSampleState createState() => new ExpansionTileSampleState();
}
class ExpansionTileSampleState extends State<ExpansionTileSample> {
final GlobalKey<AppExpansionTileState> expansionTile = new GlobalKey();
String foos = 'One';
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new Scaffold(
appBar: new AppBar(
title: const Text('ExpansionTile'),
),
body: GestureDetector(
onTap: () {
setState(() {
// this.foos = 'One';
expansionTile.currentState.collapse();
});
},
child: Column(
children: <Widget>[ …
Run Code Online (Sandbox Code Playgroud) 我想在 DropTarget 不接受时显示可拖动的反馈动画。Flutter 不显示反馈。有什么方法可以展示或控制它。像这个例子,我想实现这个效果。我以某种方式实现了这种效果,但返回原始偏移量是不正确的。它正朝着原来的位置前进。
我想要的动画效果。
这是我的代码,当我将它提升到某个位置并将他从那里离开时,我有一个拖动框,它应该动画回到原始位置,但它正在返回到其他一些像这样的偏移。
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(body: DragBox()),
);
}
}
class DragBox extends StatefulWidget {
DragBox({
Key key,
}) : super(key: key);
@override
State<StatefulWidget> createState() {
return new _MyDragBox();
}
}
class _MyDragBox extends State<DragBox> with TickerProviderStateMixin {
GlobalKey _globalKey = new GlobalKey();
AnimationController _controller;
Offset begin;
Offset cancelledOffset;
Offset _offsetOfWidget;
@override …
Run Code Online (Sandbox Code Playgroud) 我正在尝试用不同的颜色为图像着色。我正在拍摄两张图片,一张是 PNG 格式,另一张是 SVG 格式。我正在获取一个颜色列表,当用户点击颜色列表中的颜色时,图像的颜色会发生变化。我正在使用不同颜色的图像。我想要的是图像应该保留它没有覆盖的最后一个红色?这也是我的代码和图像示例。
SVG 图像 的 SVG 图像链接
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
void main() => runApp(new MaterialApp(
home: new ColorPicker(),
debugShowCheckedModeBanner: false,
));
class ColorPicker extends StatefulWidget {
ColorPickerState createState() => ColorPickerState();
}
const List<Color> mainColors = const <Color>[
Colors.black,
const Color(0xFF980000),
const Color(0xFFFF0000),
const Color(0xFFFF9900),
const Color(0xFFFFFF00),
const Color(0xFF00FF00),
const Color(0xFF00FFFF),
const Color(0xFF4A86E8),
const Color(0xFF0000FF),
const Color(0xFF9900FF),
const Color(0xFFFF00FF),
];
Color selectedColor;
class ColorPickerState extends State<ColorPicker> {
void onColorSelected(Color color) {
setState(() {
selectedColor = color;
}); …
Run Code Online (Sandbox Code Playgroud) 我想通过单击按钮来控制 gif 动画,即,如果我按下“单击我”按钮动画开始并再次按下动画应该停止。我正在参考这个问题如何在 Flutter 中显示动画图片?
我不想将 gif 图像分成帧,我必须只使用一个 gif 图像并仅控制它。这是我的代码。
import 'package:flutter/material.dart';
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
State createState() => new MyHomePageState();
}
class MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin {
AnimationController _controller;
Animation<int> _animation;
@override
void initState() {
_controller = new AnimationController(
vsync: this, duration: const Duration(seconds: 3))
..stop();
_animation = new IntTween(begin: …
Run Code Online (Sandbox Code Playgroud) 我试图通过提供offset
from 和end的方式(例如from)在屏幕上移动容器Offset(0.0,0.0) to Offset(400.0,300.0)
。我正在使用“幻灯片过渡”为容器设置动画Tween<Offset>(begin: const Offset(3.0, 4.0), end: Offset(0.0, 0.0))
,并在屏幕上移动该容器,我希望通过这些 容器 Offset(400.0,300.0)
并对其进行动画处理。
这是我的代码
class MoveContainer extends StatefulWidget {
MoveContainer({Key key, }) : super(key: key);
@override
State<StatefulWidget> createState() {
return new _MyMoveContainer();
}
}
class _MyMoveContainer extends State<MoveContainer>
with TickerProviderStateMixin {
GlobalKey _globalKey = new GlobalKey();
AnimationController _controller;
Animation<Offset> _offset;
Offset local;
@override
void initState() {
super.initState();
_controller = AnimationController(
vsync: this,
duration: const Duration(seconds: 3),
);
_offset =
Tween<Offset>(begin: const Offset(3.0, 4.0), end: …
Run Code Online (Sandbox Code Playgroud) 我有一个图像,其中某些项目具有起始偏移量以及它们的高度和宽度,与图像中的每个项目相对应,我有不同的文本,我必须将文本拖放到图像上的正确位置,在点击到特定位置时会得到不同的偏移,在拖动时我也会得到不同的偏移。如何获得相同的偏移量?
这是我正在使用的代码和图像。这些是树的细节
x=673
y=635
h=214
w=149
Run Code Online (Sandbox Code Playgroud)
class Home extends StatefulWidget {
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
ImageInfo _imageInfo;
AssetImage assestImage;
double dx;
double dy;
Offset dragOffset;
@override
void initState() {
super.initState();
assestImage = AssetImage('assets/hospital.jpg');
WidgetsBinding.instance.addPostFrameCallback((a) => _getImageInfo());
}
void _getImageInfo() async {
Image image = new Image.asset('assets/hospital.jpg');
image.image
.resolve(new ImageConfiguration())
.addListener((ImageInfo info, bool _) {
_imageInfo = info;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly, …
Run Code Online (Sandbox Code Playgroud)