flutter - PageView 内的圆角图像保持 Flutter 比例

标签 flutter dart rounded-corners clip flutter-pageview

我有一个PageView,里面有图像列表。我想保持图像比例并为其设置圆角。

通常,我可以在简单列表或单个图像中剪切图像。

但在这种情况下,ClipRRect 没有包裹图像,当我将大小设置为红色Container 时,什么也没有发生。

结果:

enter image description here

代码:

double maxiHeight = 250;
  List<Widget> postList = [];

  @override
  void initState() {
    for(Post p in Model.instance.postList) {
      postList.add(post(p));
    }
    super.initState();
  }


  @override
  Widget build(BuildContext context) {
    return Container(
      height: maxiHeight,
      child: PageView(
          controller: PageController(viewportFraction: 0.5),
          children: postList
      ),
    );
  }


  Widget post(Post post) {
    return ClipRRect(
      borderRadius: BorderRadius.circular(20),
        child: Container(
            margin: EdgeInsets.only(right: 10),
            color: Colors.red,
            child: Image.network(post.thumb, height: 50)
        )
    );
  }

我想保持图像比例。

我在这里缺少什么?

最佳答案

关于您的代码片段,您首先提供右侧边距,然后用 ClipRRect 包装。这里主容器正在获取其大小,然后使用边距,在使用 ClipRRect 包装后,它会避免从右侧到 Clip 的 10px。这就是我们获得当前输出的方式。

但是我们希望在容器外部填充并且没有边框半径。意思是在装饰图像之后,只提供一些填充。您可以按照此操作并使用 fit: BoxFit.cover 将覆盖小部件尺寸。

      Center(
              child: Padding(
                padding: EdgeInsets.only(right: 10),
                child: ClipRRect(
                  borderRadius: BorderRadius.circular(20),
                  child: Container(
                    // margin: EdgeInsets.only(right: 10),// not here
                    color: Colors.red,
                    child: Image.network(
                      // post.thumb,
                      "https://unsplash.it/1440/3040?random",
                      // fit: BoxFit.fitHeight,
                      height: 150,
                    ),
                  ),
                ),
              ),
            ),

关于flutter - PageView 内的圆角图像保持 Flutter 比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69223832/

相关文章:

android - 滚动到 RichText 内的 TextSpan

Flutter:读取传递给 build.yaml 文件中的 build_runner 的变量

gwt 圆形面板(类似于 DecoratorPanel 的基于标准的小部件)

flutter - 如何在Flutter中更新Google驱动器文件?

flutter - 在ForEach() Dart 上摔断

android - 如何判断一个 App 是原生的还是 Flutter 的

animation - 英雄动画在 Flutter 中不起作用

flutter - Flutter:使用ImagePicker插件选择图像后,如何导航到新页面?

user-interface - Chart.js 圆角边缘和文本居中的 donut

css - 谷歌的新按钮——如何在 CSS 中做圆 Angular