首页 > 解决方案 > 为什么 AutoSizeText Widget 的 textAlign 和 Wrap Widget 的 crossAxisAlignment 不能正确对齐?

问题描述

我使用 aWrapAutoSizeText来表示同一行上的值和度量单位。

我试图在末尾对齐值和度量单位,Container但它没有发生,我得到的是:

在此处输入图像描述

下面我附上代码:

                          Wrap(
                            crossAxisAlignment: WrapCrossAlignment.end,
                            children: [
                              Container(
                                  color: Colors.red,
                                  height: calculatedHeight,
                                  child: AutoSizeText(
                                    val.toString() + ' ',
                                    minFontSize: 5,
                                    textAlign: TextAlign.end,
                                    style: TextStyle(
                                        fontSize: item.textSize),
                                  )),
                              Container(
                                  color: Colors.amber,
                                  height: calculatedHeight,
                                  child: AutoSizeText(
                                    unit,
                                    textAlign: TextAlign.end,
                                    minFontSize: 5,
                                    style: TextStyle(
                                        fontSize: item.unitSize),
                                  )),
                            ],
                          ),

如果我删除Container它显然正确对齐但问题是如果我删除它,文本不会调整大小..

标签: flutterdarttext-alignmentautoresize

解决方案


问题肯定是AutoSizeTextContainers 包装了,你可以试试这个,用 the 替换WrapRow用 a 包装它FittedBox

                            FittedBox(
                                fit: BoxFit.fitHeight,
                                child:
                                    Row(
                                      crossAxisAlignment:
                                          CrossAxisAlignment.end,
                                      children: [
                                        AutoSizeText(
                                          val.toString() + ' ',
                                          minFontSize: 1,
                                          style: TextStyle(
                                            fontSize: item.textSize,
                                            fontWeight: FontWeight.bold,
                                            color: HexColor(
                                              item.colors!.back!,
                                            ),
                                          ),
                                        ),
                                        AutoSizeText(
                                          unit,
                                          textAlign: TextAlign.end,
                                          minFontSize: 1,
                                          style: TextStyle(
                                            fontSize: item.unitSize,
                                            color: HexColor(
                                              item.colors!.back!,
                                            ),
                                          ),
                                        ),
                                      ),

推荐阅读