如何在 Flutter 中使用 Dimen?
Posted
技术标签:
【中文标题】如何在 Flutter 中使用 Dimen?【英文标题】:How to use Dimens in Flutter? 【发布时间】:2019-07-29 05:50:49 【问题描述】:我想使用类似于 androids dimens.xml 的东西来强制我的应用程序保持一致性。
考虑到 Material Design 在 Flutter 中的高度集成度,我确信 Material Design 会有一些预定义的值可供使用,但我找不到类似的东西。
我错过了吗? 如果没有,实施它的最佳方法是什么? 只是一个持有静态变量的类?
【问题讨论】:
听起来你在找docs.flutter.io/flutter/material/ThemeData-class.html (docs.flutter.io/flutter/material/Theme-class.html)。 您好!不完全的。我想通过引用一些预定义值的集合来使用尺寸来填充、边距和固定大小。例如,我可能想用height = dimens.buttonHeight
、width = demens.buttonWidth
、padding = dimen.buttonPadding
和margin = dimen.buttonMargin
创建一个按钮。在 android 开发中有一个名为 dimens.xml
的文件,您可以在其中预定义这些(我相信您已经知道),我总是将其设置为遵循材料设计“8 规则”(8 的倍数)。我认为它可能会默认实现。如果没有,这可能是一个不错的补充!
我没有做过任何 Android 开发,对此一无所知(尝试了谷歌但没有深入了解它),但它仍然认为主题是你在 Flutter 中最接近的。
ThemedData 非常混乱且文档记录不充分。也许这只是我。最重要的是,它没有我所要求的填充、边距或大小的任何参数。除此之外,还有一些缺少关系信息的冲突参数,例如primarySwatch/PrimaryColor。文档中还有一些参数没有出现在我的编辑器中,例如 appBarTheme。同样,这可能只是我。
ThemedData 是所有提供的材料小部件使用的(Cupertino 小部件使用类似的东西),所以最后你需要创建类似的东西。对于您的自定义小部件,您可以自己构建类似的东西。
【参考方案1】:
不确定这是否完全回答了您的问题。但是有一个新的 Android 发布包,比如 dimens.xml 文件。此软件包于 2020 年 8 月发布。
https://pub.dev/packages/dimens
在撰写本文时,此软件包仅支持基于最小宽度(如 sw320)的设备分类。希望他们扩展库以包括基于 dencity 的分类。
我现在唯一能想到的其他选择是使用具有常量值的静态类。
【讨论】:
有趣。我会留意未来的更新。感谢您通知我。以上是关于如何在 Flutter 中使用 Dimen?的主要内容,如果未能解决你的问题,请参考以下文章
如何在flutter中使用flutter_webview_plugin和AndroidX
如何使用 flutter_webview 插件在 Flutter 中启用位置?
Flutter-如何在flutter的整个应用程序生命周期中将数据保存在内存中?