我正在尝试实现每次打开应用程序时都会显示的“欢迎屏幕”。因此,就“应用程序介绍屏幕”而言,这不是常见的欢迎屏幕。 欢迎屏幕应滑至顶部,以在主页上“输入”该应用程序。因此,我希望此小部件位于主页顶部(也许在堆栈小部件中),这样,在将欢迎页面滑动到顶部时,主页是部分可见的。在那之后,欢迎屏幕将不再可见。 所以我的问题是,是否有一个提供这些可能性的小部件。
我的方法如下:
我已经尝试过PageView,但这不支持两个屏幕的叠加(堆栈)。
答案on this question.中建议的“滑动容器” 但是我无法将容器“转换”为上述要求。
其他一些想法是使用flutter swiper,但我认为改编太困难了。
因此,我希望得到一些建议,我可以使用它们来实现此目的。
提前谢谢!
答案 0 :(得分:0)
可能有更好的方法,但是...
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Welcome Demo',
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
final Widget welcome = WelcomeView();
final Widget home = HomeView();
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
body: Stack(
children: [
Positioned.fill(child: home),
Positioned(bottom: 100, child: welcome),
],
),
),
);
}
}
class HomeView extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
color: Colors.red,
child: Center(
child: Text(
'HomeView',
style: TextStyle(fontSize: 28),
textAlign: TextAlign.center,
),
),
);
}
}
class WelcomeView extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Dismissible(
key: UniqueKey(),
direction: DismissDirection.up,
child: Container(
height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width,
color: Colors.blue,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Welcome!!!',
style: TextStyle(fontSize: 28),
),
],
),
),
);
}
}