如何解决 BoxConstraints 在颤动中强制无限宽度异常?

时间:2021-05-13 07:41:03

标签: flutter dart google-cloud-firestore flutter-layout flutter-animation

您好,我只是想在列表项的右侧包含一个切换按钮。这样做时,我最终得到了这个 BoxConstraints 强制无限宽度错误。作为一个完整的初学者,有人可以让我知道这是什么意思吗?我必须对代码进行哪些更改才能消除此错误?

import 'package:attendee/constants.dart';
import 'package:flutter/material.dart';
import 'package:attendee/models/userdeails.dart';

class userdetailsTile extends StatelessWidget {
  final userdetails userdetail;
  userdetailsTile({this.userdetail});

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: EdgeInsets.only(top: 8.0),
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        crossAxisAlignment: CrossAxisAlignment.center,
        children: <Widget>[
          Card(
            //margin: EdgeInsets.fromLTRB(20.0, 6.0, 20.0, 0.0),
            child: GestureDetector(
              child: ListTile(
                leading: CircleAvatar(
                  radius: 25.0,
                  backgroundColor: Colors.lightGreen,
                ),
                title: Text(userdetail.fullname),
              ),
            ),
          ),
          Switch(
            value: present,
            onChanged: (value) {
              //setState(() {
              present = value;
              print(present);
              //});
            },
            activeTrackColor: Colors.lightGreenAccent,
            activeColor: Colors.green,
          ),
          //),
        ],
      ),
    );
  }
}

1 个答案:

答案 0 :(得分:0)

请检查以下解决方案。

  • 解决方案 1

     return Material(child: Padding(
        padding: EdgeInsets.only(top: 8.0),
        child: ListTile(
                leading: CircleAvatar(
                  radius: 25.0,
                  backgroundColor: Colors.lightGreen,
                ),
                title: Text(userdetail.fullname),
                trailing: Switch(
                  value: present,
                  onChanged: (value) {
                    //setState(() {
                    present = value;
                    print(present);
                    //});
                  },
                  activeTrackColor: Colors.lightGreenAccent,
                  activeColor: Colors.green,
                ),
              ),
        ),
      );
    
  • 解决方案 2

     return Material(child: 
       Padding(
        padding: EdgeInsets.only(top: 8.0),
        child: Row(
          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: <Widget>[
            Expanded(
              child: Card(
                //margin: EdgeInsets.fromLTRB(20.0, 6.0, 20.0, 0.0),
                child: Row(
                  children: [
                    CircleAvatar(
                      radius: 25.0,
                      backgroundColor: Colors.lightGreen,
                    ), Text(userdetail.fullname)
                  ],
                ),
              ),
            ),
            Switch(
              value: present,
              onChanged: (value) {
                //setState(() {
                present = value;
                print(present);
                //});
              },
              activeTrackColor: Colors.lightGreenAccent,
              activeColor: Colors.green,
            ),
            //),
          ],
        ),
       ),
      );