#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, ), ), ), )