【发布时间】:2020-07-08 11:08:54
【问题描述】:
我对扑扑有点陌生。我需要有关轮播图像的帮助。我有使用 carousel_pro 包的轮播图像。当使用 GestureDetector 按下时,我可以在新页面上打开图像。但我想在新页面上打开相同的轮播图像,但首先使用 onPressed 索引。我的意思是前。我有 5 张图片。当我按下第三张图片时,它必须在新的轮播上打开该图片而不是第一张。我希望我说清楚了。下面是一页一图的方式。我需要在图像轮播中带有压制图像起始索引的轮播。提前致谢。
import 'package:carousel_slider/carousel_slider.dart';
import './image_screen.dart';
void main() => runApp(MaterialApp(home: Demo()));
class Demo extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<Demo> {
@override
Widget build(BuildContext context) {
Widget image_carousel = new Container(
height: 345.0,
child: CarouselSlider(
height: 400.0,
items: [
'http://pic3.16pic.com/00/55/42/16pic_5542988_b.jpg',
'http://photo.16pic.com/00/38/88/16pic_3888084_b.jpg',
'http://pic3.16pic.com/00/55/42/16pic_5542988_b.jpg',
'http://photo.16pic.com/00/38/88/16pic_3888084_b.jpg'
].map((i) {
return Builder(
builder: (BuildContext context) {
return Container(
width: MediaQuery.of(context).size.width,
margin: EdgeInsets.symmetric(horizontal: 5.0),
decoration: BoxDecoration(color: Colors.amber),
child: GestureDetector(
child: Image.network(i, fit: BoxFit.fill),
onTap: () {
Navigator.push<Widget>(
context,
MaterialPageRoute(
builder: (context) => ImageScreen(i),
),
);
}));
},
);
}).toList(),
));
return Scaffold(
body: new Column(
children: <Widget>[
image_carousel,
],
),
);
}
}
编辑:我添加了上面的示例代码。这不是我需要的。我需要这样的东西:第 1 页有 5 张图片的轮播。当我按下第三张图像时,在第 2 页上打开相同的图像轮播,并带有按下的第三张图像的索引。我的意思是在第 2 页轮播必须从第 3 张图片开始。我希望这次我把自己说清楚了。
【问题讨论】:
-
您的
ImageScreen是否包含与您的_HomePageState相同的代码,并且您将整个列表传递给您的ImageScreen或仅传递给index? 如果通过了索引 => 如果您只是通过索引,ImageScreen如何获取所有图像 -
@Alok 我将所有图像传递给 ImagesScreen 并显示相同的图像轮播,但在轮播上首先按下图像。我想要实现的是:我有产品详细信息。在产品详细信息中,我在屏幕的第三个屏幕中的 1 个中显示该产品的图像。在剩下的我显示详细信息。当我在特定图像上按下该轮播时,我想在新页面上以全高显示相同的图像轮播,但在轮播的第一个被按下的图像。希望我说清楚
-
嘿@Ruslan HasanOFF,看看我的答案。我希望这会在很大程度上帮助你。 :)
-
嘿@Rusian HasanOFF,新版本的答案仅根据您的要求添加:)
标签: flutter dart indexing carousel