Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何使文本自动调整大小?_Flutter_Dart_Flutter Layout - Fatal编程技术网

Flutter 如何使文本自动调整大小?

Flutter 如何使文本自动调整大小?,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,我正在编写一个非常简单的优惠券应用程序,但我正在努力处理我的文本。我正在从Kotlin到Flatter编写我的应用程序。在Kotlin中,我有ConstraintLayout,它很快允许我设计接口。我还有一个名为autoSizeTextType=“uniform”的属性,它允许我在不同的屏幕大小上自动调整文本大小 看看我的照片。在iPhone11Max Pro上,我的卡片和文本之间有一个空格。我想我的文字自动调整大小在不同的屏幕比例 然而,在我的Pixel3A模拟器上,文本的大小是完美的 我

我正在编写一个非常简单的优惠券应用程序,但我正在努力处理我的文本。我正在从Kotlin到Flatter编写我的应用程序。在Kotlin中,我有ConstraintLayout,它很快允许我设计接口。我还有一个名为autoSizeTextType=“uniform”的属性,它允许我在不同的屏幕大小上自动调整文本大小

看看我的照片。在iPhone11Max Pro上,我的卡片和文本之间有一个空格。我想我的文字自动调整大小在不同的屏幕比例

然而,在我的Pixel3A模拟器上,文本的大小是完美的

我如何让我的文本在不同的屏幕比例下响应

代码
导入“包装:颤振/材料.省道”;
类ClassicUponScreen扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回脚手架(
背景颜色:Colors.white,
正文:安全区(
子:容器(
填充:所有边缘设置(16.0),
子:列(
crossAxisAlignment:crossAxisAlignment.stretch,
儿童:[
划船(
mainAxisAlignment:mainAxisAlignment.spaceBetween,
儿童:[
纵队(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
Text('DATA WYDANIA:',style:TextStyle(颜色:Colors.black,fontwweight:fontwweight.bold)),
文本('2019年12月23日',样式:文本样式(颜色:Colors.black))
],
),
纵队(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
Text('UNIKALNY KOD:',样式:TextStyle(颜色:Colors.black,fontwweight:fontwweight.bold)),
文本('S-58-pS-8',样式:文本样式(颜色:Colors.black))
],
)
],
),
尺寸箱(高度:16.0),
Image.asset('assets/images/优惠券_hamburger.png'),
尺寸箱(高度:16.0,),
正文('Lorem ipsum dolor sit amet,奉献精英,在劳动和财富的临时契约中。但在最小限度内,我们的nostrud实习是在公共消费前进行的。两人或两人或两人在无财产区的自由贸易区的代表中进行的。除此之外不可轻视,不可将其视为对动物的惩罚,样式:TextStyle(颜色:Colors.black)),
垫片(),
容器(
身高:95.0,
孩子:卡片(
颜色:颜色。橙色,
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
Text('DRUKUJ/',样式:TextStyle(fontSize:30.0)),
文本('ZAPISZ JAKO PDF',样式:TextStyle(fontSize:30.0))
],
),
),
),
容器(
身高:95.0,
孩子:卡片(
颜色:颜色。橙色,
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
Text('PRZEŚLIJ KUPON',样式:TextStyle(fontSize:30.0)),
文本('WYSYŁKA W CIĄGU 24 GODZIN'),样式:TextStyle(fontSize:20.0))
],
),
),
),
],
),
),
)
);
}
}

使用
flatter\u screenutil
使文本具有响应性。 用法:

初始化
屏幕。实例
的宽度px和高度px为您希望在
构建中支持的最高屏幕比率

ScreenUtil.instance = ScreenUtil(width: 750, height: 1334)..init(context);

Text('Hello World', style: TextStyle(
   color: Colors.white,
   fontSize: ScreenUtil.getInstance().setSp(12)),
  ),
)
您也可以参考此博客

,您可以利用此博客来实现所需的行为

首先,您必须访问
pubspec.yaml
文件:

dependencies:
  auto_size_text: ^2.1.0
安装软件包后,您将能够在布局中使用它:

import'package:auto_size_text/auto_size_text.dart';
// ...
儿童:[
// ...
扩大(
子对象:AutoSizeText(
“Lorem ipsum door sit amet,献身于发展精英,在劳动和财富的临时契约中。但在最低限度的契约中,nostrud在公共消费品上的实践。两人或两人在无财产权的情况下的共同义务。罪除外。”有时,如果你不自以为是,就必须为自己的行为负责,
样式:TextStyle(颜色:Colors.black),
),
),
// ...
],
// ...

这可以解决您的问题:

用法

AutoSizeText的行为与文本完全相同。唯一的区别是它调整文本大小以适应其边界

AutoSizeText(
  'The text to display',
  style: TextStyle(fontSize: 20),
  maxLines: 2,
)