gpt4 book ai didi

flutter : Move widget to another position

转载 作者:行者123 更新时间:2023-12-04 15:39:21 28 4
gpt4 key购买 nike

enter image description here

按下按钮后,我希望文本(向上移动的文本)到达屏幕顶部并在中央显示新文本。

我认为堆栈和定位小部件可能会起作用。
我想要一个响应式应用程序。

import 'package:flutter/material.dart';

class MoveTest extends StatefulWidget {
@override
_MoveTestState createState() => _MoveTestState();
}

class _MoveTestState extends State<MoveTest> {
bool moveIt = false;

@override
Widget build(BuildContext context) {
return Container(
child: Column(
children: <Widget>[
Expanded(
child: Center(
child: Text(
'Text to move up',
style: TextStyle(fontSize: 30),
),
),
),
(moveIt)
? Container(
child: Text(
'New Text in the center',
style: TextStyle(fontSize: 30),
),
)
: Container(),
Container(
child: RaisedButton(
onPressed: () {
setState(() {
moveIt = true;
});
},
child: Text('Move'),
),
)
],
),
);
}
}

我如何用很少的动画移动文本并显示带有一些文本的新小部件?
我应该将堆栈与定位小部件一起使用吗?
如何使用堆栈/定位小部件和响应式应用程序?

编辑:

不给予任何帮助而投反对票,你会得到快乐吗?心狠手辣

最佳答案

我会使用 SlideTransition ( https://api.flutter.dev/flutter/widgets/SlideTransition-class.html ),完成动画后,您可以使用提交给 SlideTranslation 的 Animation 对象进行控制,您可以在中间显示任何文本。

启动您的工作的小代码示例。

import 'dart:async';

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Flutter SlideTransition',
theme: ThemeData.dark(),
home: MyHomePage()
);
}
}

class MyHomePage extends StatefulWidget {

@override
MyHomePageState createState() => MyHomePageState();

}


class MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin {

AnimationController _animationController;
Animation _animation;

@override
void initState() {
_animationController =
AnimationController(vsync: this, duration: Duration(seconds: 2));
_animation = Tween<Offset>(begin: Offset(0, 0), end: Offset(0, -0.4)).animate(
_animationController);

_animationController.forward().whenComplete(() {
// put here the stuff you wanna do when animation completed!
});
}

@override
Widget build(BuildContext context) {
return SafeArea(
child: SlideTransition(
position: _animation,
child: Center(child: Text("My Text")),
)
);
}
}

关于 flutter : Move widget to another position,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58471616/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com