Flutter - Wrap:不要用文字换行
Flutter - Wrap: do not wrap with text
我有这个代码:
import 'package:flutter/material.dart';
void main() => runApp(mainApp());
class mainApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return const MaterialApp(
home: Chat(),
);
}
}
class Chat extends StatefulWidget {
const Chat({Key? key}) : super(key: key);
@override
_ChatState createState() => _ChatState();
}
class _ChatState extends State<Chat> {
List<Container> myList = [
Container(
child: Text(
'Hello, my name ',
style: TextStyle(fontSize: 25.0),
),
),
Container(
color: Colors.orange,
child: Text(
'is',
style: TextStyle(fontSize: 25.0),
),
),
Container(
child: Text(
' Gabriele, and i am 21 years old!',
style: TextStyle(fontSize: 25.0),
),
),
];
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Wrap(
children: myList,
),
),
);
}
}
这是我当前的输出:
这是我想要得到的输出:(我希望 myList 的最后一个容器不要立即换行)。
有人知道我该怎么做吗?
希望你能帮助我。
谢谢:)
在这种情况下,您可以使用 RichText
而不是 Wrap
。
RichText(
text: TextSpan(
style: TextStyle(fontSize: 25.0),
children: [
TextSpan(text: 'Hello, my name '),
TextSpan(
text: 'is',
style: TextStyle(
backgroundColor: Colors.amber,
)),
TextSpan(text: ' Gabriele, and i am 21 years old!'),
],
),
),
如果您需要在文本旁边包含其他简单内容,您可以用 WidgetSpan
包装小部件并在 TextSpan
上用作 children
。
RichText(
text: TextSpan(
style: TextStyle(fontSize: 25.0),
children: [
TextSpan(text: 'Hello, my name '),
WidgetSpan(
child: Container(
color: Colors.green,
width: 40,
height: 40,
)),
我有这个代码:
import 'package:flutter/material.dart';
void main() => runApp(mainApp());
class mainApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return const MaterialApp(
home: Chat(),
);
}
}
class Chat extends StatefulWidget {
const Chat({Key? key}) : super(key: key);
@override
_ChatState createState() => _ChatState();
}
class _ChatState extends State<Chat> {
List<Container> myList = [
Container(
child: Text(
'Hello, my name ',
style: TextStyle(fontSize: 25.0),
),
),
Container(
color: Colors.orange,
child: Text(
'is',
style: TextStyle(fontSize: 25.0),
),
),
Container(
child: Text(
' Gabriele, and i am 21 years old!',
style: TextStyle(fontSize: 25.0),
),
),
];
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Wrap(
children: myList,
),
),
);
}
}
这是我当前的输出:
这是我想要得到的输出:(我希望 myList 的最后一个容器不要立即换行)。 有人知道我该怎么做吗?
希望你能帮助我。
谢谢:)
在这种情况下,您可以使用 RichText
而不是 Wrap
。
RichText(
text: TextSpan(
style: TextStyle(fontSize: 25.0),
children: [
TextSpan(text: 'Hello, my name '),
TextSpan(
text: 'is',
style: TextStyle(
backgroundColor: Colors.amber,
)),
TextSpan(text: ' Gabriele, and i am 21 years old!'),
],
),
),
如果您需要在文本旁边包含其他简单内容,您可以用 WidgetSpan
包装小部件并在 TextSpan
上用作 children
。
RichText(
text: TextSpan(
style: TextStyle(fontSize: 25.0),
children: [
TextSpan(text: 'Hello, my name '),
WidgetSpan(
child: Container(
color: Colors.green,
width: 40,
height: 40,
)),