Переполнение пикселей вправо

#flutter

Вопрос:


 import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:wound/Themes/Themes.dart';  class LineItem extends StatelessWidget {  const LineItem({  Key key,  @required this.title,  @required this.icon,  @required this.name,  @required this.iconColor,  }) : super(key: key);   final String title;  final IconData icon;  final String name;  final Color iconColor;   @override  Widget build(BuildContext context) {  return Row(  children: lt;Widgetgt;[  Container(  height: 48,  width: 2,  decoration: BoxDecoration(  color: Themes.darkGreen.withOpacity(0.5),  borderRadius: BorderRadius.all(Radius.circular(4.0)),  ),  ),  Padding(  padding: const EdgeInsets.all(8.0),  child: Column(  mainAxisAlignment: MainAxisAlignment.center,  crossAxisAlignment: CrossAxisAlignment.start,  children: lt;Widgetgt;[  Row(  mainAxisAlignment: MainAxisAlignment.start,  crossAxisAlignment: CrossAxisAlignment.end,  children: [  FaIcon(  icon,  size: 21,  color: iconColor,  ),  Padding(  padding: const EdgeInsets.only(left: 4, bottom: 2),  child: Text(  title,  textAlign: TextAlign.left,  softWrap: true,  style: TextStyle(  fontFamily: Themes.fontName,  fontWeight: FontWeight.w500,  fontSize: 14,  letterSpacing: -0.1,  color: Themes.grey.withOpacity(0.5),  ),  ),  ),  ],  ),  SizedBox(  height: 2,  ),  Container(  child: Padding(  padding: const EdgeInsets.only(left: 4, bottom: 3),  child: Row(  children: [  Text(  name,  textAlign: TextAlign.center,  style: TextStyle(  fontFamily: Themes.fontName,  fontWeight: FontWeight.w400,  fontSize: 16,  color: Themes.darkerText,  ),  ),  ],  ),  ),  )  ],  ),  ),  ],  );  } }  

текстовое имя переполняется вправо всякий раз, когда текст становится длинным, однако я пытался использовать расширенное, но оно вызывает ошибку, говорящую о неправильном родителе, и виджет revevant, вызывающий ошибку, — это строка в начале, кто-нибудь знает, как это исправить, я перепробовал все, но это все еще вызывает и ошибку , спасибо

Ответ №1:

Вы можете использовать мой код здесь, я добавил Расширенный в обеих строках основной строки и подстроки. Я думаю, что вы пробовали с 1 расширенной строкой, поэтому я выдаю ошибку.

 class LineItem extends StatelessWidget {  const LineItem({  Key key,  @required this.title,  @required this.icon,  @required this.name,  @required this.iconColor,  }) : super(key: key);   final String title;  final IconData icon;  final String name;  final Color iconColor;   @override  Widget build(BuildContext context) {  return Row(  children: lt;Widgetgt;[  Container(  height: 48,  width: 2,  decoration: BoxDecoration(  color: Themes.darkGreen.withOpacity(0.5),  borderRadius: BorderRadius.all(Radius.circular(4.0)),  ),  ),  Expanded(  child: Padding(  padding: const EdgeInsets.all(8.0),  child: Column(  mainAxisAlignment: MainAxisAlignment.center,  crossAxisAlignment: CrossAxisAlignment.start,  children: lt;Widgetgt;[  Row(  mainAxisAlignment: MainAxisAlignment.start,  crossAxisAlignment: CrossAxisAlignment.end,  children: [  FaIcon(  icon,  size: 21,  color: iconColor,  ),  Expanded(  child: Padding(  padding: const EdgeInsets.only(left: 4, bottom: 2),  child: Text(  title,  textAlign: TextAlign.left,  softWrap: true,  style: TextStyle(  fontFamily: Themes.fontName,  fontWeight: FontWeight.w500,  fontSize: 14,  letterSpacing: -0.1,  color: Themes.grey.withOpacity(0.5),  ),  ),  ),  ),  ],  ),  SizedBox(  height: 2,  ),  Container(  child: Padding(  padding: const EdgeInsets.only(left: 4, bottom: 3),  child: Row(  children: [  Text(  name,  textAlign: TextAlign.center,  style: TextStyle(  fontFamily: Themes.fontName,  fontWeight: FontWeight.w400,  fontSize: 16,  color: Themes.darkerText,  ),  ),  ],  ),  ),  )  ],  ),  ),  ),  ],  );  } }  

Ответ №2:

Замените это:

 Container(  child: Padding(  padding: const EdgeInsets.only(left: 4, bottom: 3),  child: Row(  children: [  Text(  name,  textAlign: TextAlign.center,  style: TextStyle(  fontFamily: Themes.fontName,  fontWeight: FontWeight.w400,  fontSize: 16,  color: Themes.darkerText,  ),  ),  ],  ),  ),  )  

с:

 SizedBox(  width: MediaQuery.of(context).size.width*0.9,  child: Padding(  padding: const EdgeInsets.only(left: 4, bottom: 3),  child: Text(  name,  textAlign: TextAlign.center,  softWrap: true,  maxLines: 3,  style: TextStyle(  fontFamily: Themes.fontName,  fontWeight: FontWeight.w400,  fontSize: 16,  color: Themes.darkerText,  ),  ),  ),  )