Flutter-如何将水平ListView中的每个图像显示在屏幕上?

时间:2019-09-28 03:12:27

标签: flutter

我创建了一个水平ListView,其中包含很多图像,但是ListView中的每个图像都不适合屏幕(有时我必须滚动才能看到其余的图像,当然还有下一张图像的一部分)。如何拉伸每个适合屏幕的图像并滚动查看下一个图像 (下一张图片也必须适合屏幕)

更新示例 Horizontal Image ListView

4 个答案:

答案 0 :(得分:1)

您可以将DecorationImageBoxFit.fill一起使用

示例:

Container(
          width: 64.0,
          height: 64.0,
          decoration: new BoxDecoration(
            shape: BoxShape.circle,
            image: new DecorationImage(
                fit: BoxFit.fill,
                image: new NetworkImage('my_url.jpg')
            )
        )) 

答案 1 :(得分:0)

您可以将此代码用于具有完美适合图像的“水平”列表视图。

 Container(
            height: 275,
            child: ListView.builder(
              scrollDirection: Axis.horizontal,
              shrinkWrap: true,
              itemCount: furnitures.length,
              itemBuilder: (BuildContext context, int index) {
                Map furniture = furnitures[index];

                return Padding(
                  padding: EdgeInsets.only(right: 20),
                  child: GestureDetector(
                    onTap: (){
                      Navigator.of(context).push(
                        MaterialPageRoute(
                          builder: (BuildContext context){
                            return Details();
                          },
                        ),
                      );
                    },
                    child: Container(
                      height: 275,
                      width: 280,
                      child: Column(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: <Widget>[
                          Text(
                            furniture['name'],
                            style: TextStyle(
                              fontWeight: FontWeight.bold,
                              fontSize: 20,
                            ),
                          ),
                          SizedBox(height: 10),
                          ClipRRect(
                            borderRadius: BorderRadius.circular(15),
                            child: Image.asset(
                              "${furniture["img"]}",
                              height: 240,
                              width: 280,
                              fit: BoxFit.cover,
                            ),
                          ),
                        ],
                      ),
                    ),
                  ),
                );
              },

            ),
          )

答案 2 :(得分:0)

您可以使用MediaQuery来实现。只需输入MediaQuery.of(context).size.width(它会为您提供设备屏幕的宽度),然后您就可以分配图像的宽度

答案 3 :(得分:0)

我的意思是轮播小部件,以前从未听说过。我是移动开发的新手。