Embrulhe o texto no contêiner sem usar uma largura fixa no Flutter
Estou tentando criar um aplicativo de bate-papo básico no Flutter e quero exibir a conversa em contêineres simples que adaptarão seu comprimento ao texto interno. Tudo funciona bem até o texto não se ajustar ao comprimento do contêiner, quando recebo um erro de estouro.
O código que estou usando é esse
Widget _buildMessage(Message message) {
return Row(children: <Widget>[
message.author == username ? Expanded(child: Container()) : Container(),
Container(
padding: EdgeInsets.all(8.0),
margin: EdgeInsets.all(4.0),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(Radius.circular(8.0))),
child: Row(
children: <Widget>[
Text(
message.text,
),
SizedBox(
width: 8.0,
),
Padding(
padding: EdgeInsets.only(top: 6.0),
child: Text(
message.time,
style: TextStyle(fontSize: 10.0, color: Colors.grey),
),
),
SizedBox(
width: 8.0,
),
Padding(
padding: EdgeInsets.only(top: 6.0),
child: Text(
message.author,
style: TextStyle(fontSize: 10.0, color: Colors.grey),
),
),
],
)),
message.author != username ? Expanded(child: Container()) : Container(),
]);
}
Estou usando uma linha dentro de uma linha para obter esse alinhamento à direita ou à esquerda, dependendo do autor. Se eu digitar algo com uma multilinha na minha entrada, o texto será renderizado corretamente, com o contêiner expandindo verticalmente conforme necessário. O problema é quando apenas digito além da largura do contêine
Eu posso consertar isso envolvendo o Texto com um Container e um fixo com, mas não quero isso, pois quero que a largura seja dinâmica e se adapte ao text
Vi outras perguntas nas quais as pessoas sugerem o uso de Flexível ou Expandido, mas não consigo descobrir como fazê-l
Todas as idéias seriam apreciadas.