Flutter 颤振覆盖页,详细信息帐户页

Flutter 颤振覆盖页,详细信息帐户页,flutter,mobile,dart,overlay,concept,Flutter,Mobile,Dart,Overlay,Concept,我正在尝试制作一个应用程序,我需要社区的帮助:我正在尝试在另一个页面的顶部制作一个覆盖图(这将是一个新页面)。看看上面的这些截图,我会尽力解释得更好 所以,想象一下你在第一个屏幕截图所示的页面上。我想做的是,当你点击时,例如在“联系人页面”按钮上,一个窗口从屏幕底部出现,带有线性动画,并显示视图,如屏幕右侧的屏幕截图所示。但我不希望它成为“真正的新页面”,因为正如你在第二张截图上看到的,我们可以透明地看到后面的第一页 当然,当你点击交叉按钮时,窗口会弹出 如果我不够清楚,可以问我任何问题 欢迎

我正在尝试制作一个应用程序,我需要社区的帮助:我正在尝试在另一个页面的顶部制作一个覆盖图(这将是一个新页面)。看看上面的这些截图,我会尽力解释得更好

所以,想象一下你在第一个屏幕截图所示的页面上。我想做的是,当你点击时,例如在“联系人页面”按钮上,一个窗口从屏幕底部出现,带有线性动画,并显示视图,如屏幕右侧的屏幕截图所示。但我不希望它成为“真正的新页面”,因为正如你在第二张截图上看到的,我们可以透明地看到后面的第一页

当然,当你点击交叉按钮时,窗口会弹出

如果我不够清楚,可以问我任何问题

欢迎任何帮助!
非常感谢,stackoverflow是一个非凡的社区

这里有一个示例,说明如何使用小部件实现此功能,希望它能帮助您入门

class ExampleApp extends StatefulWidget {
  @override
  _ExampleAppState createState() => _ExampleAppState();
}

class _ExampleAppState extends State<ExampleApp> {
  final double containerHeight = 200.0;

  bool _showProfile;

  @override
  void initState() {
    _showProfile = false;
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        color: Colors.teal,
        child: Stack(
          children: <Widget>[
            Container(
              color: Colors.redAccent,
              child: Center(
                child: FlatButton(
                  child: Text("Animate"),
                  onPressed: () {
                    setState(() {
                      _showProfile = true;
                    });
                  },
                ),
              ),
            ),
            AnimatedPositioned(
                bottom: _showProfile ? 0 : -containerHeight,
                right: 0,
                left: 0,
                duration: Duration(milliseconds: 300),
                child: Container(
                  color: Colors.white,
                  height: containerHeight,
                ))
          ],
        ),
      ),
    );
  }
}
class ExampleApp扩展StatefulWidget{
@凌驾
_ExampleAppState createState()=>\u ExampleAppState();
}
类\u示例AppState扩展状态{
最终双容器高度=200.0;
bool_showProfile;
@凌驾
void initState(){
_showProfile=false;
super.initState();
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
主体:容器(
颜色:Colors.teal,
子:堆栈(
儿童:[
容器(
颜色:Colors.redAccent,
儿童:中心(
孩子:扁平按钮(
子对象:文本(“动画”),
已按下:(){
设置状态(){
_showProfile=true;
});
},
),
),
),
动画定位(
底部:_showProfile?0:-集装箱重量,
右:0,,
左:0,,
持续时间:持续时间(毫秒:300),
子:容器(
颜色:颜色,白色,
高度:集装箱高度,
))
],
),
),
);
}
}

您也可以通过底部板材实现同样的效果

退房

此外,如果您能够设计左侧的屏幕,如果您能提供相同的代码参考,这将非常有用。我在找这样的东西。