Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 小部件在第二次运行时为图标添加额外的填充?_Flutter - Fatal编程技术网

Flutter 小部件在第二次运行时为图标添加额外的填充?

Flutter 小部件在第二次运行时为图标添加额外的填充?,flutter,Flutter,我有一个用于日期选择器的小部件,它显示一个日期选择器、一个图标和一些文本。一些可选文本被传递到文本部分,因此根据调用它的位置,这是唯一的区别。现在,在某个页面上,这个小部件被调用了两次,但在第二次调用时,图标左侧的填充比第一次调用时多。这个填充物不应该在那里。两者之间唯一的区别是给每个人的可选文本,似乎有足够的空间。我已经附上了代码和它的图像。感谢任何人谁可以提供一些建议,如何摆脱额外的间距 这是呈现日期选择器、图标和文本的小部件 class DatePicker extends Statef

我有一个用于日期选择器的小部件,它显示一个日期选择器、一个图标和一些文本。一些可选文本被传递到文本部分,因此根据调用它的位置,这是唯一的区别。现在,在某个页面上,这个小部件被调用了两次,但在第二次调用时,图标左侧的填充比第一次调用时多。这个填充物不应该在那里。两者之间唯一的区别是给每个人的可选文本,似乎有足够的空间。我已经附上了代码和它的图像。感谢任何人谁可以提供一些建议,如何摆脱额外的间距

这是呈现日期选择器、图标和文本的小部件

class DatePicker extends StatefulWidget {
   final String optionalText;

  DatePicker({Key key, @required this.optionalText}) : super(key: key);

  @override
   _DatePickerState createState() => _DatePickerState();
 }

 class _DatePickerState extends State<DatePicker> {
  DateTime selectedDate = DateTime.now();


   @override
   Widget build(BuildContext context) {
     return Container(
      child: Row(
       mainAxisAlignment: MainAxisAlignment.spaceBetween,
       children: <Widget>[
        Container(
         width: MediaQuery.of(context).size.width * .50,
         height: MediaQuery.of(context).size.height * .07,
         child: Padding(
          padding: EdgeInsets.fromLTRB(33, 0, 5, 0),
          child: RaisedButton(
           color: Colors.white,
           shape: RoundedRectangleBorder(
               borderRadius: BorderRadius.circular(10)),
           child: dateHyphenReplacer(selectedDate),
           onPressed: () => _selectDate(context),
          ),
         ),
        ),
        Padding(
         padding: EdgeInsets.fromLTRB(5, 10, 0, 10),
         child: Icon(
          Icons.calendar_today,
          color: Colors.white,
          size: 30,
         ),
        ),
        Container(
         child: Padding(
          padding: EdgeInsets.all(8.0),
          child: Text(
           'Choose ${widget.optionalText} Date',
           style: TextStyle(
               color: Colors.white,
               fontStyle: FontStyle.italic,
               fontFamily: 'Montserrat',
               fontSize: 16),
          ),
         ),
        ),
       ],
      ),
     );
   }

   Future<void> _selectDate(BuildContext context) async {
    final DateTime picked = await showDatePicker(
        context: context,
        initialDate: selectedDate,
        firstDate: DateTime(2015, 8),
        lastDate: DateTime(2101));
    if (picked != null && picked != selectedDate)
     setState(() {
      selectedDate = picked;
     });
   }

  dateHyphenReplacer(date){
     date = formatDate(date, [mm, '/',dd,'/',yy]);
     return Text('$date', style: TextStyle(color: Colors.blue, fontSize: 20));
  }

  }




这是因为MainAxisAlignment.spaceBetween和两个文本的长度不同,因此它似乎有不同的填充。使用MainAxisAlignment.start,您就会明白


编辑:打字错误

这是因为MainAxisAlignment.spaceBetween和两个文本的长度不同,因此似乎有不同的填充。使用MainAxisAlignment.start,您就会明白

编辑:打字错误

              Container(
                  child: DatePicker(optionalText: "Start")
              ),
              SizedBox(height: 10),
              Container(
                child: DatePicker(optionalText: "End"),
              ),