行中的“颤振”图标“ X像素右溢出”

问题描述

我正在尝试在Flutter中构建一个标签栏,使其关闭和打开动画。当它打开时,由于行中的图标只有在行扩展后才完全可见,所以给了我著名的Flutter“溢出”错误。

我尝试阅读有关可能的解决方案的信息,但大多数都与文本溢出问题有关。我曾尝试将我的Row用“扩展”包装,但是我意识到无论如何这没有多大意义。我查看了其他解决方案,但是找不到与“行中的图标”小部件有关的问题类似的东西。

我希望有人能帮助我,希望这对以后的人有所帮助。

class Agent < ApplicationRecord

  def self.totals_in_last_three_months
    joins("
      RIGHT JOIN generate_series(
        date_trunc('month',statement_timestamp() - interval'2 months'),date_trunc('month',statement_timestamp()),interval'1 month'
      ) as months(month)
      ON date_trunc('month',agents.created_at) = months.month")
      .group('months.month')
      .count('agents.*')
  end

end

解决方法

有许多选项可以处理它,具体取决于您的需求。我添加了两个

  1. 首先。包装Flexible Widget Flutter Widget of the Week about it
  2. 中的每个图标

enter image description here

bool isSelected = false;
@override
Widget build(BuildContext context) {
  return GestureDetector(
    onTap: () {
      setState(() {
        isSelected = !isSelected;
      });
    },child: Center(
      child: AnimatedContainer(
        padding: isSelected
            ? EdgeInsets.symmetric(vertical: 12.0,horizontal: 12.0)
            : EdgeInsets.symmetric(vertical: 12.0,horizontal: 30.0),width: isSelected ? 48 : MediaQuery.of(context).size.width * 0.85,child: isSelected
            ? Icon(Icons.favorite)
            : Row(
                mainAxisAlignment: MainAxisAlignment.spaceBetween,children: [
                  _icon(Icons.home),_icon(Icons.message),_icon(Icons.add),_icon(Icons.shopping_cart),_icon(Icons.person_outline),],),decoration: BoxDecoration(
            color: Colors.grey,borderRadius: BorderRadius.circular(30)),duration: Duration(seconds: 1),curve: Curves.fastOutSlowIn,);
}

Widget _icon(IconData data) {
  return Flexible(child: Icon(data));
}
  1. 第二个是使用onEnd回调。 documentation

enter image description here

bool isSelected = false; bool hasFullWidth = true;

@override
Widget build(BuildContext context) {
  return GestureDetector(
    onTap: () {
      setState(() {
        isSelected = !isSelected;
        hasFullWidth = false;
      });
    },child: !isSelected && hasFullWidth
            ? Row(
                mainAxisAlignment: MainAxisAlignment.spaceBetween,children: [
                  Icon(Icons.home),Icon(Icons.message),Icon(Icons.add),Icon(Icons.shopping_cart),Icon(Icons.person_outline),)
            : Icon(Icons.favorite),onEnd: () {
          if (!isSelected) {
            setState(() {
              hasFullWidth = true;
            });
          }
        },);
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...