Flutter中是否推荐使用扩展?

问题描述 投票:0回答:1
在下面的示例中,如果我在文本小部件上使用扩展,例如在第二种情况下。

这是否意味着我使用的每个文本小部件都会将填充功能添加到其成本中,即使对于在将它们转换为 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') ]); } }
    
flutter dart layout widget rendering
1个回答
0
投票
是的,通过使用扩展程序,您与该扩展程序一起使用的每个

Text

小部件都将具有填充功能。
如果您有大量需要填充的

Text

小部件并且您希望避免重复代码,那么使用扩展方法可能会很有帮助。但是,如果您只有几个需要填充的

Text
小部件,那么在必要时直接用 Padding 包装这些
Text
小部件可能会更清晰、更高效。
    

© www.soinside.com 2019 - 2024. All rights reserved.