微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

文本连续溢出,颤动

如何解决文本连续溢出,颤动

由于文本太长,我在布局方面遇到了问题,我尝试将 Expanded / Flexible 与导致问题的文本一起使用以填充所需的空间,但它已溢出.我知道这个问题被问了一百次,但我不明白错误在哪里。我尝试将 Expanded / Flexible 分别和同时应用于所有行/列(主要是我尝试布局以尝试修复它),但我仍然有问题...我什至尝试将 FittedBoxfit: BoxFit.(all of them) 一起使用。

enter image description here

Container(
          alignment: Alignment.centerLeft,child: Column(
            children: [
              Row(
                crossAxisAlignment: CrossAxisAlignment.start,children: [
                  Padding(
                    padding: const EdgeInsets.only(right: 8.0),child: Icon(Icons.directions_car),),Row(
                    crossAxisAlignment: CrossAxisAlignment.start,children: [
                      Column(
                        crossAxisAlignment: CrossAxisAlignment.start,children: [
                          Text("Text 1"),SizedBox(
                            height: 4,Text('TEXT 2'),],SizedBox(
                        width: 27,Column(
                        crossAxisAlignment: CrossAxisAlignment.start,children: [
                          Text('1 World Way,Los Angeles,CA 90045,USA',textAlign: TextAlign.left,Text('FLIGHT 3231'),);

根据我的理解,如果我错了,请纠正我,应用 Expanded / FlexibleFlexible 只占用需要的空间,而 Expanded 占用所有可用空间空间,尊重弹性系数。所以大部分时间我都使用灵活的小部件,但这次它不起作用。

预先感谢您的帮助!

解决方法

尝试使用 Expanded 小部件,并根据 UI 填充的预期设置 flex 值。

示例代码:

Center(
        child: Container(
      height: 80,color: Colors.yellow,child: Row(
        mainAxisAlignment: MainAxisAlignment.start,children: [
          Padding(
            padding: const EdgeInsets.all(8.0),child: Icon(Icons.bus_alert),),Expanded(
              flex: 1,child: Container(
                width: 1,color: Colors.green,child: Column(
                  children: [Text("Text 1"),Text("Text 1")],)),Expanded(
              flex: 3,child: Container(
                color: Colors.blue,child: Column(
                  mainAxisAlignment: MainAxisAlignment.spaceAround,children: [
                    Text("1 World Way,Los Angeles,CA 90045,USA"),Text("FLIGHT 3231"),],))
        ],))

注意: 使用的文本内容有限制。我们需要确保根据预期的文本长度设置高度。

Example

,

用固定宽度的容器包裹它,然后使用auto_sized_text。或者您可以通过 FittedBox 按固定宽度包装您的 Text 小部件。它会采用相同的方法。随意添加 maxLineminFontSizemaxFontSize' in auto_sized_text. Using ExpandedorFlexible` 仅在您的文本长度小于给定宽度时影响容器的大小,并且它不会在这种情况下无法帮助您。

,

您可以使用 Flexible 或 Expanded Widget 您应该尝试使用以下代码:

Card(
        shape: RoundedRectangleBorder(
          side: BorderSide(
            color: Colors.blue,borderRadius: BorderRadius.circular(15.0),margin: EdgeInsets.all(16.0),child: Container(
          padding: EdgeInsets.all(8.0),alignment: Alignment.centerLeft,child: Column(
            children: [
              Row(
                crossAxisAlignment: CrossAxisAlignment.start,children: [
                  Icon(Icons.directions_car),SizedBox(
                    width: 10,Flexible(
                    child: Column(
                      crossAxisAlignment: CrossAxisAlignment.start,children: [
                        Text("Text 1"),SizedBox(
                          height: 4,Text('TEXT 2'),SizedBox(
                    width: 27,Flexible(
                    child: Container(
                      child: Column(
                        children: [
                          Text(
                            '1 World Way,USA',textAlign: TextAlign.left,SizedBox(
                            height: 4,Text(
                            'FLIGHT 3231',

你的屏幕是这样的: Screen Like this

,

如果文本真的很长,那么使用 Expanded 将根据父小部件包装文本,从而导致字体大小发生变化。您可以考虑使用省略号。

return Container(
  width:300  //give a width of your choice
  child: Text('Any long text',overflow:TextOverflow.ellipsis,);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?