[英]Navigationrail leading/trailing align to left
I have a Navigationrail
widget with a button to extend/collapse it.我有一个带有按钮的Navigationrail
小部件来扩展/折叠它。 Trailing/leading
widgets in one line with NavigationRailDestination
when extend=false
, but when extend=true
trailing/leading
widgets always align to center.当extend=false
时, Trailing/leading
小部件与NavigationRailDestination
在一行中,但当extend=true
时, trailing/leading
小部件始终与中心对齐。
Is it possible to align it to the left/right?是否可以将其与左/右对齐?
My goal: trailing/leading
widgets should not change it's positions to center when navigationrail
extended.我的目标:当navigationrail
扩展时, trailing/leading
小部件不应将其位置更改为居中。
I found a solution by editing this example: https://api.flutter.dev/flutter/material/NavigationRail/extendedAnimation.html我通过编辑这个例子找到了一个解决方案: https://api.flutter.dev/flutter/material/NavigationRail/extendedAnimation.html
Solution: use Animation
of NavigationRail
解决方法:使用NavigationRail
的Animation
final Animation<double> animation =
NavigationRail.extendedAnimation(context);
and then change the width/padding according to it with lerpDouble function:然后使用 lerpDouble function 根据它更改宽度/填充:
padding: EdgeInsets.only(
right: lerpDouble(0, 200, animation.value)!,
bottom: 30,
),
Full working code:完整的工作代码:
import 'dart:ui';
import 'package:flutter/material.dart';
class NavigationRailMenuButton extends StatelessWidget {
const NavigationRailMenuButton({super.key, this.onPressed});
final VoidCallback? onPressed;
@override
Widget build(BuildContext context) {
final Animation<double> animation =
NavigationRail.extendedAnimation(context);
return AnimatedBuilder(
animation: animation,
builder: (BuildContext context, Widget? child) {
return Container(
padding: EdgeInsets.only(
right: lerpDouble(0, 200, animation.value)!,
),
child: IconButton(
icon: const Icon(Icons.menu),
iconSize: 32,
onPressed: onPressed,
),
);
},
);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.