这是否意味着我使用的每个文本小部件都会将填充功能添加到其成本中,即使对于在将它们转换为 RenderObject 时不需要填充的小部件(如情况 3)也是如此?
使用第一种情况不是更好吗?
extension PaddingOnText on Text {
Widget paddingTextWid() => Padding(
padding: const EdgeInsets.symmetric(horizontal: 20),
child: this,
);
}
class MyWidget extends StatelessWidget {
const MyWidget({super.key});
@override
Widget build(BuildContext context) {
return Column(children: [
//case 1:
const Padding(
padding: EdgeInsets.symmetric(horizontal: 20),
child: Text('First Case : warp with padding directly'),
),
// case 2:
const Text('Second Case: Use Extensions').paddingTextWid(),
//case 3:
const Text('Third Case: without padding')
]);
}
}
Text
小部件都将具有填充功能。如果您有大量需要填充的
Text
小部件并且您希望避免重复代码,那么使用扩展方法可能会很有帮助。但是,如果您只有几个需要填充的
Text
小部件,那么在必要时直接用 Padding 包装这些 Text
小部件可能会更清晰、更高效。