作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想像Zara的App一样制作产品页面。我无法在应用程序中实现其应用程序功能。它们有一个您可以查看图像的区域,可以使用PageView
小部件来实现,但是如何实现滑动后出现的底部功能?我尝试使用DraggableScrollableSheet
,但随后无法将PageView
用于图像,因为DraggableScrollableSheet
占据了整个屏幕。我目前的实现如下:
class _IndividualProductState extends State<IndividualProduct> {
@override
Widget build(BuildContext context) {
return SafeArea(
child: Container(
child: Stack(
children: <Widget>[
// ---------------Image container -----------------------------------------
Container(
padding: EdgeInsets.all(20),
color: Colors.white,
height: MediaQuery.of(context).size.height * 0.78,
width: MediaQuery.of(context).size.width,
child: PageView(
scrollDirection: Axis.vertical,
controller: PageController(initialPage: 1),
children: <Widget>[
Image.network(
"https://m.media-amazon.com/images/I/81pV8zF-RML._AC_UL320_ML3_.jpg",
fit: BoxFit.contain,
),
Image.network(
"https://m.media-amazon.com/images/I/81pV8zF-RML._AC_UL320_ML3_.jpg",
fit: BoxFit.contain,
),
],
),
),
// -------------------------- For Product Description ---------------------------------------
Scaffold(
backgroundColor: Colors.transparent,
body: DraggableScrollableSheet(
minChildSize: 0.17,
initialChildSize: 0.17,
maxChildSize: 0.93,
builder:
(BuildContext context, ScrollController scrollController) {
return Container(
color: Colors.grey[100],
child: ListView(
padding: EdgeInsets.all(0),
controller: scrollController,
children: <Widget>[
Center(
heightFactor: 0.3,
child: ListTile(
title: Icon(MaterialCommunityIcons.minus, size: 32),
),
),
Padding(
padding: const EdgeInsets.fromLTRB(8, 8, 8, 0),
child: CustomText(
"COMFORT KNIT TEXTURED TROUSER",
weight: FontWeight.w500,
size: 15,
),
),
],
),
);
},
),
),
// Close icon to close the product page
Padding(
padding: const EdgeInsets.all(8.0),
child: GestureDetector(
child: Icon(
Icons.close,
size: 32,
),
onTap: () {
Navigator.pop(context);
},
),
),
],
// ),
),
// ),
),
);
// );
}
}
最佳答案
您似乎正在寻找一个在Material Design系统中称为Backdrop的组件。根据Material Design's Backdrop page:
A backdrop appears behind all other surfaces in an app, displaying contextual and actionable content.
main
dart代码片段对我了解您要实现的目标特别有用。
关于flutter - 使Zara像产品页面一样 flutter 朔迷离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60364621/
我是一名优秀的程序员,十分优秀!