令图像取固定高度的列中剩下的空间

发布于 2025-01-24 03:25:21 字数 1743 浏览 0 评论 0原文

我得到了一个用约束框maxheight包裹的。现在,我的有三个孩子。文本,图像和文本输入。我想将图像调整为绘制文本和文本输入后剩下的空间。我该如何实现?我的图像被加载在FutureBuilder中。

目前,它只是在底部溢出,因为我的图像太大了。看起来像这样: “在此处输入图像描述”

我的代码:

ConstrainedBox(
    constraints: BoxConstraints(maxHeight: 100.h)
    child: Column(
      children: [
        Text(
          "loading...",
          style: TextStyle(fontSize: 15.sp, color: Colors.red),
        ),
        FutureBuilder<String>(
            future: imageRef.getDownloadURL(),
            builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
              if (snapshot.hasData) {
                String url = snapshot.data!;
                return Image.network(
                  url
                );
              } else {
                return Text(
                  AppLocalizations.of(context)!.loadingImageFailed,
                  style: TextStyle(
                    fontSize: 15.sp,
                  ),
                );
              }
            }),
        Padding(
            padding: EdgeInsets.only(left: 15.sp, right: 15.sp),
            child: SizedBox(
                width: 100.w,
                child: ThemeInputField(
                  context,
                  _titleController,
                  AppLocalizations.of(context)!.memeTitleInputLabel,
                  textInputAction: TextInputAction.go,
                  size: 16.sp,
                  autofocus: true,
                  textColor: Colors.white,
                )))
      ],
    ))

I got a Column that is wrapped in a ConstrainedBox with a maxHeight. Now my Column has three childs. A text, an image and a textinput. I want to have the image adjust to the space that is left after text and textinput were drawn. How can I achieve that? My Image is loaded in a FutureBuilder.

At the moment it just overflows at the bottom because my Image is too big. it looks like this: enter image description here

My Code:

ConstrainedBox(
    constraints: BoxConstraints(maxHeight: 100.h)
    child: Column(
      children: [
        Text(
          "loading...",
          style: TextStyle(fontSize: 15.sp, color: Colors.red),
        ),
        FutureBuilder<String>(
            future: imageRef.getDownloadURL(),
            builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
              if (snapshot.hasData) {
                String url = snapshot.data!;
                return Image.network(
                  url
                );
              } else {
                return Text(
                  AppLocalizations.of(context)!.loadingImageFailed,
                  style: TextStyle(
                    fontSize: 15.sp,
                  ),
                );
              }
            }),
        Padding(
            padding: EdgeInsets.only(left: 15.sp, right: 15.sp),
            child: SizedBox(
                width: 100.w,
                child: ThemeInputField(
                  context,
                  _titleController,
                  AppLocalizations.of(context)!.memeTitleInputLabel,
                  textInputAction: TextInputAction.go,
                  size: 16.sp,
                  autofocus: true,
                  textColor: Colors.white,
                )))
      ],
    ))

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

记忆之渊 2025-01-31 03:25:21

尝试用扩展的小部件包装image.network
另外,添加为参数the image.network boxfit.fill

try wrapping Image.network with an expanded widget
also, add as a parameter the Image.network boxFit.fill

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文