gpt4 book ai didi

Flutter SizeTransition 和 PageRouteBuilder 不工作

转载 作者:IT王子 更新时间:2023-10-29 06:36:40 24 4
gpt4 key购买 nike

我正在尝试让我的列表项展开全屏。根据 Material 建议。 PageRouterBuilder 似乎是可行的方法,SlideTransition 和 ScaleTransition 都运行良好,但 SizeTransition 似乎不起作用。当我单击列表项时,新页面会立即显示。我希望它在开始时被剪掉。

代码如下。

在此先感谢您的帮助!

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

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

class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
timeDilation = 10.0;
return new MaterialApp(
title: 'Flutter Demo',
home: new MyHomePage(),
);
}
}

class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: new AppBar(title: new Text("Test Expand")),
body: ListView(children: <Widget>[
new ListTile(
title: new Text("Todo 1"),
onTap: () {
_onTap(context, 1);
}),
new ListTile(
title: new Text("Todo 2"),
onTap: () {
_onTap(context, 2);
})
]),
);
}

void _onTap(BuildContext context, int i) {
Navigator.of(context).push(new PageRouteBuilder(pageBuilder:
(BuildContext context, Animation animation,
Animation secondaryAnimation) {
return TaskPage(task: i);
}, transitionsBuilder: (BuildContext context,
Animation<double> animation,
Animation<double> secondaryAnimation,
Widget child) {
return new SizeTransition(sizeFactor: animation, child: child);
}));
}
}

class TaskPage extends StatelessWidget {
final int task;

TaskPage({this.task});

@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(title: new Text("Edit")),
body: new Text("Task " + task.toString()));
}
}

最佳答案

页面的根小部件被迫填满屏幕,原因很简单:Flutter 不知道如何对齐实际上并未填满屏幕的路由。

因此,为了简化事情,它只是强制填充。

要解决这个问题,只需将根小部件包装到 Align 中:

PageRouteBuilder(
transitionsBuilder: (context, animation, __, child) {
return Align(
child: SizeTransition(
sizeFactor: animation,
child: child,
),
);
},
),

关于Flutter SizeTransition 和 PageRouteBuilder 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50670250/

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