如何解决“ RenderFlex在右侧溢出了143个像素。” 文字错误?

Vit*_*avi 3 dart flutter

在此处输入图片说明

这是我的Cardview代码:

Column(
    crossAxisAlignment: CrossAxisAlignment.start,
    children: <Widget>[
        TitleText(text: "Item name mmmmmmmmm $index"),
        SizedBox(height: 20.0),
        Body1Text(text: "Discount mmmmmmmm",color: Colors.red,),
        SizedBox(height: 5.0),
        SubHeadText(text: "Price ,mmmmmmmmmmmmmmmmmm",color: Colors.red,)

    ],
),
Run Code Online (Sandbox Code Playgroud)

小智 9

只需使用

isExpanded: true,
Run Code Online (Sandbox Code Playgroud)

DropdownButton

例子

        DropdownButton(
          isExpanded: true,
          items: data.map((item) {
            return new DropdownMenuItem(
              child: Text(item['name']),
              value: item['id'].toString(),
            );
          }).toList(),
          onChanged: (newVal) {
            setState(() {
              _mySelection = newVal;
            });
          },
          value: _mySelection,
        ),
Run Code Online (Sandbox Code Playgroud)


小智 7

您可以使用 Wrap 而不是 Column。

例如..

new Wrap(
   spacing: 5.0, 
   runSpacing: 5.0, 
   direction: Axis.vertical, // main axis (rows or columns)
   children: <Widget>[
       TitleText(text: "Item name mmmmmmmmm $index"),
       Body1Text(text: "Discount mmmmmmmm",color: Colors.red,),
       SubHeadText(text: "Price ,mmmmmmmmmmmmmmmmmm",color: Colors.red,)
   ],
 )
Run Code Online (Sandbox Code Playgroud)


anm*_*ail 5

只需CardFlexible小部件包裹您即可。

Row(
    children: <Widget>[
      Flexible(
        child: Card(
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: <Widget>[
              Text("Item name mmmasdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaammmmmm"),
              SizedBox(height: 15.0,),
              Text(
                "Discount mmmmmmmm",
              ),
              SizedBox(height: 5.0,),
              Text(
                "Price ,mmmmmmmmmdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfdgfmmmmmmmmm",
              )
            ],
          ),
        ),
      ),
    ],
  ),
Run Code Online (Sandbox Code Playgroud)

  • 只需用“Flexible”小部件包装您的“Card”、“Text”小部件即可。还要记住,“Flexible”小部件必须是“Row”、“Column”或“Flex”的后代。即“灵活”父小部件应该是其中之一。 (2认同)

Par*_*iya 5

使用 Expanded 或 Flexible 小部件包装 Row 的子项。您可以使用它们中的任何一个,两者都有其优点

Row(
    mainAxisAlignment: MainAxisAlignment.spaceBetween,
    children: <Widget>[
      Flexible(
        child: Text("Example of using flexible"),
      ),

      Expanded(
        child: Text("Example of using Expanded"),
      ),
    ]
);
Run Code Online (Sandbox Code Playgroud)

更多信息:https : //github.com/flutter/flutter/issues/18448