在我的堆叠图像文件 (Flutter) 之后我有多余的空间

Posted

技术标签:

【中文标题】在我的堆叠图像文件 (Flutter) 之后我有多余的空间【英文标题】:I am having unwanted space after my stacked image file (Flutter) 【发布时间】:2021-12-26 03:10:59 【问题描述】:

这是我遇到问题的 dart 文件:据我所知,白色的额外空间是因为这个。看看最后一段文字。

import 'dart:ffi';

import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:lint/lint.dart';
import 'package:simple_shadow/simple_shadow.dart';

class WelcomeLettersDart extends StatefulWidget 
  @override
  _WelcomeLettersDartState createState() => _WelcomeLettersDartState();


class _WelcomeLettersDartState extends State<WelcomeLettersDart> 
  @override
  Widget build(BuildContext context) 
    return SizedBox(
      width: 340,
      child: Center(
        child: Stack(
          children: [
            Center(
              child: SimpleShadow(
                opacity: 0.7,
                color: Colors.amber,
                offset: Offset(0.0, 2.0),
                sigma: 6.0,
                child: Image.asset(
                  "assets/images/WelcomeLetterD.png",
                  height: 340,
                ),
              ),
            ),
            Center(
              child: Positioned(
                child: Padding(
                  padding: const EdgeInsets.symmetric(vertical: 32),
                  child: Text(
                    "WELCOME",
                    style: TextStyle(
                      fontWeight: FontWeight.bold,
                      fontSize: 18,
                      color: Colors.white,
                    ),
                    textAlign: TextAlign.center,
                  ),
                ),
              ),
            ),
            Center(
              child: Positioned(
                child: Padding(
                  padding: const EdgeInsets.symmetric(
                    vertical: 88,
                    horizontal: 63,
                  ),
                  child: Text(
                    "Greeting from Letters. This  is a chat application with an old theme of sending letters.",
                    style: TextStyle(
                      fontWeight: FontWeight.w500,
                      fontSize: 13,
                      color: Colors.white,
                      height: 2.15,
                    ),
                  ),
                ),
              ),
            ),
            Center(
              child: Positioned(
                child: Padding(
                  padding: const EdgeInsets.symmetric(
                    vertical: 200,
                    horizontal: 63,
                  ),
                  child: Text(
                    "Lets look together what we have got :)",
                    style: TextStyle(
                      fontWeight: FontWeight.w500,
                      fontSize: 13,
                      color: Colors.white,
                      height: 2.10,
                    ),
                  ),
                ),
              ),
            ),

看看这里我这里有 280 的垂直填充,我想这会造成所有问题。我还可以使用什么来将文本堆叠在所需位置的图像上?

            Positioned(
              child: Align(
                alignment: Alignment.bottomRight,
                child: Padding(
                  padding: const EdgeInsets.symmetric(
                    vertical: 280,
                    horizontal: 65,
                  ),
                  child: Text(
                    "- Nishan",
                    style: TextStyle(
                      fontWeight: FontWeight.w500,
                      fontSize: 13,
                      color: Colors.white,
                      height: 2.15,
                    ),
                  ),
                ),
              ),
            ),
          ],
        ),
      ),
    );
  

【问题讨论】:

格式化您的代码以使其可读,并分享原始图像的外观(以确保它在 png 中没有自己的填充) 不要试图通过粘贴代码文本来绕过系统。解释您尝试解决的问题和问题,阅读 *** 上的 how-to-ask 我做了一些修改以使其可读。 【参考方案1】:

使用中心小部件包装堆栈。另外,请将代码格式化,以便于阅读。

【讨论】:

居中没有帮助,但我想我理解我的问题。我的最后一个文本中有 280 的垂直填充。 Positioned(child: Align(alignment: Alignment.bottomRight, child: Padding(padding: const EdgeInsets.symmetric( vertical: 280, horizontal: 65, ), child: Text( "- Nishan") 除了填充我还能用什么? 堆栈中的定位小部件可以取左、右、上和下【参考方案2】:

是的,所以我对这个问题的看法是正确的,我已经解决了。所以,一直以来我都在错误地使用“定位”小部件。应该是这样的-

Positioned(
   right: 64,
   bottom: 32,
   child: Text(
           "- Nishan",
            style: TextStyle(
                      fontWeight: FontWeight.w500,
                      fontSize: 13,
                      color: Colors.white,
                      height: 2.15,
                    ),
                 ),
              ),

我使用 paddingsalignments 定位小部件 以在图像上实现所需的位置。但定位小部件本身有其“left:”、“right:”、“top:”和“bottom: em>" 用于在对象上获得所需的位置。

我从flutter.io 看到了正确的用法。 它用额外的空白解决了我的问题。 现在我的定位小部件需要清理很多东西。

【讨论】:

以上是关于在我的堆叠图像文件 (Flutter) 之后我有多余的空间的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 堆叠 GestureDetector 和滑块问题

如何防止 Bootstrap 轮播图像堆叠? HTML/CSS(使用 PHP 显示图像)

Flutter:如何将 Canvas/CustomPainter 保存到图像文件中?

Flutter 将自定义堆叠对象转换为 json

图像列表不显示在 Flutter-web 中

Flutter 中的索引堆叠。如何在所有其他小部件之上显示容器?