响应式小部件
此插件有助于创建响应式小部件,这些小部件可根据参考屏幕尺寸(宽度、高度和最短边(dpi))与应用程序运行的屏幕之间的比例自动调整大小。该包仅更改了原始小部件,例如“Container”,以应用一个进行此计算的函数。
入门
首先,您需要使用代码 ResponsiveWidgets().init(context) 来使插件正常工作。代码需要放置在应用程序的第一个屏幕上,位于build方法内部,如下所示: 也可在代码中查看
class _HomeScreenState extends State<HomeScreen> {
@override
Widget build(BuildContext context) {
ResponsiveWidgets().init(context,
referenceHeight: 1920, // Optional
referenceWidth: 1080, // Optional
referenceShortestSide: 411 // Optional, default = 360
);
return Scaffold(
body: Container()
);
}
}
ShortestSide basically the dpi of the device, can be got by this code: MediaQuery.of(context).size.shortestSide;
Or be changed in the device in Config>Developer Options>Drawing Section>ShortestSide.
小部件
ContainerResponsive
ContainerResponsive(
child: Widget,
height: double, // Responsive wight
heightResponsive: bool, // Enable/Disable Responsive height
width: double, // Responsive width
widthResponsive: , bool// Enable/Disable Responsive width
)
EdgeInsetsResponsive (Can be used in any widget with parameter padding)
Padding(
child: Widget,
padding: EdgeInsetsResponsive.all(50), // EdgeInsets Responsive padding
)
IconResponsive
IconResponsive(
icon,
size: double, // Responsive size
)
IconButtonResponsive
IconButtonResponsive(
icon: IconData,
size: double, // Responsive size,
onTap: (){}
)
TextResponsive
TextResponsive(
text // Responsive fontSize
)
RaisedButtonResponsive
RaisedButtonResponsive(
child: Widget,
onPressed: (){}
)
用于负责任地重新计算尺寸的函数
对于一些没有创建响应式小部件的特殊情况,例如Positioned,解决方法很简单,使用此函数:ResponsiveWidgets().getSize(double size),它将返回正确的值到屏幕。
示例
分别为混合、响应式和普通

非响应式页面

响应式页面
