我有一个带有图标和标题的图标按钮.按钮的标题来自API,它是两个词的组合,有时甚至超过两个词.即中国餐馆或墨西哥餐馆.有时,如果名称太大,它会 destruct 单词Restaurant;有时,它也会 destruct 名称.那么,有没有办法解决这个问题,这样我就可以在不 destruct 单词的情况下看到完整的名称?我试过用它.

textOverflow: TextOverflow.ellipsis,

and also tried max line to two/three. but I am not getting the desired result.
on large screen its working fine i am having problems only on small devices.

对此有什么帮助或建议吗?谢谢.

IconButton(
    icon:  Icon(Icon.resutaurant),
    title: restaurantname,
    textOverflow: TextOverflow.ellipsis,
    onPressed: () {},
),

推荐答案

如果文本对于可用空间来说太长,则需要减小字体大小.这可以通过使用TextPainter计算必要的空间来手动完成,或者您可以 Select 一个随时可用的包(如auto_size_text)来为您管理该空间.

在其最基本的形式中,它可以这样使用

AutoSizeText(
  'A really long String',
  style: TextStyle(fontSize: 30),
  maxLines: 2,
)

style参数用于在有足够可用空间时设置字体."目标字体大小",如果你想这样称呼它的话.

Github repository中有很多定制选项.

下面的动画摘自上面链接的GitHub repo,很好地直观地展示了自动调整大小对文本的影响.当谈到文本截断与字体大小调整的UX问题时,this question可以作为这个主题的入门.

enter image description here

Flutter相关问答推荐

如何使用Firebase Firestore来获取外部集合中的文档子集合中的文档

从Flutter应用程序解释蓝牙BLE数据:了解Sylvania压力值

如何在Ffltter Chrome应用程序中使用webview_fltter_web显示自定义html而不是外部uri?

如何在2024年使用Ffltter将用户数据保存在云FireStore中?

我的flutter代码显示一个小部件被认为是死代码,为什么?

如何在抖动中预加载一条路由,或者即使在屏幕外也保持加载小工具?

如何在Flutter 中共享选定文本

Flutter :在后台实现振动

升级到Ffltter 3.16后,应用程序栏、背景 colored颜色 、按钮大小和间距都会发生变化

Android Studio扩展控件上未加载Google map

如何从RealmResults获取Flutter Flutter 流?

FOR回路中的Flutter 模型

在创建显示此错误的Flutter 深度链接时

NotifierProvider 每次更新都会重新构建并且值不更新

在 Flutter 中解码 BLE 设备负载

我可以定义一次 sharedPreferences 并在需要数据显示到 flutter 应用程序时调用它吗?

如何在 Flutter 中滚动时为多个小部件设置动画

为什么 Flutter riverpod 直接分配不起作用但方法可以

如何修复int类型不是String类型的子类型

如何使用 Riverpod 在运行时动态创建提供程序?