我有一列从屏幕顶部延伸到底部,该列内有两行,每行有三个按钮。
调整这两行之间的垂直间距的最佳/正确方法是什么?
目前我正在使用带有空子容器的 Expanded 在列的子项之间添加间隙,因此页面顶部和第一行之间有 10% 的“间隙”,两行之间还有 10% 的“间隙”
这感觉不太对,我似乎仅限于 XX% 的填充量,我想尝试避免特定的像素量,因此无论屏幕大小如何,布局都保持一致
Column(
children: <Widget>[
Expanded(flex: 1, child:Container()),
Expanded(flex: 3, child:
Row(children: <Widget>[
Expanded(child: _navButton(Icons.person, "User", ()=>print("User"))),
Expanded(child: _navButton(Icons.insert_drive_file, "Formulation", ()=>print("Formulation"),)),
Expanded(child: _navButton(Icons.lightbulb_outline, "Devices", ()=>print("Devices"),)),
],)),
Expanded(flex: 1, child:Container()),
Expanded(flex: 3, child:
Row(children: <Widget>[
Expanded(flex: 3, child: _navButton(Icons.settings, "Settings", ()=>print("Settings"), iconColour: Colors.blueGrey)),
Expanded(flex: 3, child: _navButton(Icons.camera_alt, "Photos", ()=>print("Photos"),)),
Expanded(flex: 3, child: _navButton(Icons.cancel, "Exit", ()=>print("Exit"), iconColour: Colors.redAccent)),
],
)),
],
)
Run Code Online (Sandbox Code Playgroud) 我正在开发 Qt Android 应用程序(Qt 5.11.1),并尝试使用一个库,该库使用 QtGlobal 的 QT_VERSION 检查 Qt 的版本。
由于函数不可用,我在编译时遇到错误,这似乎是因为报告的 Qt 版本不正确,(库查找#if QT_VERSION >= 0x050000 ...)
添加以下跟踪语句;
qDebug() << "QT VERSION: " << QT_VERSION;
qDebug() << "QT STRING: " << QT_VERSION_STR;
Run Code Online (Sandbox Code Playgroud)
给出输出:
... (int main(int, char**)): QT VERSION: 330497
... (int main(int, char**)): QT STRING: 5.11.1
Run Code Online (Sandbox Code Playgroud)
该字符串看起来正确,但版本号看起来不正确。
我正在使用 Windows 7 计算机,安装了 Qt Creator 4.7,并通过维护工具安装了 Qt 5.11.1 和 5.10.1。构建设置只是 Android 的默认设置。
我对 Qt 不太熟悉,并且不确定从这里该去哪里,所以任何帮助将不胜感激。
我最近一直在使用Scoped Model,想知道是否有更好的方法将多个模型推到树上供儿童使用。
假设我有一个“ AppModel”,它是我需要的所有模型的组成部分
class AppModel extends Model
{
ModelA a = new ModelA();
ModelB b = new ModelB();
ModelC c = new ModelC();
}
Run Code Online (Sandbox Code Playgroud)
我首先将此模型添加到 main
runApp(ScopedModel<AppModel>(
model: AppModel(),
child: MaterialApp(
title: 'MyApp',
home: Home(),
)),);
Run Code Online (Sandbox Code Playgroud)
这将导致应用程序从树中可用的AppModel的主页开始。
主页是一系列按钮,每个按钮都指向另一个页面,这些页面可以使用AppModel中的多个模型
当按下按钮时,我想打开相关页面并传递AppModel所需的“子模型”
目前onPressed,我的按钮看起来像这样,在其中嵌套了范围模型
() => Navigator.push(context,
MaterialPageRoute(builder: (context) => ScopedModel<ModelA>
model: ScopedModel.of<AppModel>(context).a,
child: ScopedModel<ModelB>(
model: ScopedModel.of<AppModel>(context).b,
child: PageAB())))))),
Run Code Online (Sandbox Code Playgroud)
在PageAB这些我可以通过以下方式访问相关模型ScopedModel.of()
ScopedModel.of<ModelA>(context).modelAGet
ScopedModel.of<ModelA>(context).modelAFunc()
ScopedModel.of<ModelB>(context).modelBGet
ScopedModel.of<ModelB>(context).modelBFunc()
Run Code Online (Sandbox Code Playgroud)
这是共享(多个)模型的正确方法吗?还是有一个更优雅的解决方案?