Flutter 有没有办法检测小部件使布局溢出?

Flutter 有没有办法检测小部件使布局溢出?,flutter,flutter-layout,Flutter,Flutter Layout,我正在尝试优雅地处理各种尺寸的手机和设备,我的应用程序可以在这些手机和设备上运行 在iPhone SE上,屏幕不是很宽,所以我想在布局溢出时隐藏一些标签(只留下图标) 以下是使用的代码: Widget likeDislikeLine() { return Padding( padding: EdgeInsets.only(top: 0.0, bottom: 0.0), child: ButtonBar( mainAxisSize: MainA

我正在尝试优雅地处理各种尺寸的手机和设备,我的应用程序可以在这些手机和设备上运行

在iPhone SE上,屏幕不是很宽,所以我想在布局溢出时隐藏一些标签(只留下图标)

以下是使用的代码:

  Widget likeDislikeLine() {
    return Padding(
      padding: EdgeInsets.only(top: 0.0, bottom: 0.0),
      child: ButtonBar(
        mainAxisSize: MainAxisSize.min,
        children: <Widget>[
          OutlineButton.icon(
            textColor: Colors.black,
            icon: Icon(Icons.favorite_border, size: 18.0),
            label: Text('J’aime'),
            onPressed: () {
              // Follow segment
            },
          ),
          OutlineButton.icon(
            textColor: Colors.black,
            icon: Icon(Icons.not_interested, size: 18.0),
            label: LayoutBuilder(
                builder: (BuildContext context, BoxConstraints constraints) {
              String label = 'Je n’aime pas';
              TextPainter tp = TextPainter(
                text: TextSpan(text: label),
                textDirection: TextDirection.ltr,
              );
              tp.layout(maxWidth: double.infinity);
              print("${tp.width}, ${constraints.maxWidth}");

              return tp.width < constraints.maxWidth
                  ? Text(label)
                  : const SizedBox();
            }),
            onPressed: () {
              // Ignore segment
            },
          )
        ],
      ),
    );
  }
Widget,比如edislikeline(){
返回填充(
填充:仅限边缘设置(顶部:0.0,底部:0.0),
孩子:巴顿巴(
mainAxisSize:mainAxisSize.min,
儿童:[
OutlineButton.icon(
textColor:Colors.black,
图标:图标(Icons.favorite_边框,大小:18.0),
标签:文本('J'aime'),
已按下:(){
//跟随段
},
),
OutlineButton.icon(
textColor:Colors.black,
图标:图标(不感兴趣的图标,尺寸:18.0),
标签:LayoutBuilder(
生成器:(BuildContext上下文,BoxConstraints){
字符串标签='jen'aime pas';
textpainer=textpainer(
text:TextSpan(text:label),
textDirection:textDirection.ltr,
);
tp.布局(最大宽度:双无限);
打印(${tp.width},${constraints.maxWidth});
返回tp.width

如何检测当前行是否“溢出”,以便隐藏一些标签?我尝试使用
LayoutBuilder
,但没有成功:它总是返回一个
maxWidth
等于
double.Infinity

的约束。你试过使用MediaQuery吗?我可以,但这意味着我必须硬编码一个断点,如果可能的话,我宁愿不这样做。一点也没有建设性,但很长一段时间以来,拥有iphone SE的苹果似乎也放弃了该设备的设计:许多应用程序都有一些溢出。。即使是官方的。也就是说,你已经检查过了吗?您可以使用MediaQuery获取设备的宽度,然后可以尝试获取总宽度的90%(0.9)倍。你可以这样计算其他东西。我会选择@CopsOnRoad的路线。至少这是我目前申请的方式