我正在尝试从Flutter中的父部件传递堆栈的高度,但我无法做到。请帮助我找到解决方案,我将把我的代码作为参考。
父小工具
@override
Widget build(BuildContext context) {
return SingleChildScrollView(
child: Stack(
children: [
Picturebackground(//pass Stack height ),
Center(
child: Column(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Text('varying text'),
],
),
),
],
),
);
}
子部件
dynamic listImagesnotFound = ['assets/svg1.svg','assets/svg2.svg','assets/svg3.svg','assets/svg4.svg'];
Random rnd;
class Picturebackground extends StatelessWidget {
final double stack_height;
Picturebackground ({Key key, this.stack_height}) : super(key: key);
Widget build(BuildContext context) {
int min = 0;
int max = listImagesnotFound.length - 1;
rnd = new Random();
int r = min + rnd.nextInt(max - min);
String image_name = listImagesnotFound[r].toString();
return SvgPicture.asset(image_name,
fit: BoxFit.cover,
width: MediaQuery.of(context).size.width,
height: // get the height of the Stack
);
}
}
如何将堆栈的高度传递给SVGPicture。
可以使用LayoutBuilder
获取PictureBackground
小部件的约束:
dynamic listImagesnotFound = ['assets/svg1.svg','assets/svg2.svg','assets/svg3.svg','assets/svg4.svg'];
Random rnd;
class Picturebackground extends StatelessWidget {
Widget build(BuildContext context) {
int min = 0;
int max = listImagesnotFound.length - 1;
rnd = new Random();
int r = min + rnd.nextInt(max - min);
String image_name = listImagesnotFound[r].toString();
return LayoutBuilder(
builder: (context, constraints) {
// get here
final height = constraints.maxHeight;
return SvgPicture.asset(image_name,
fit: BoxFit.cover,
width: MediaQuery.of(context).size.width,
height: height // use here
);
}
);
}
}
问题内容: 在Tkinter中是否可以将事件直接传递给父窗口小部件? 我有一个画布,该画布被其他画布的网格覆盖(是复数吗?),我使用方法添加了该画布。我希望某些事件(例如鼠标释放事件)由父画布处理。 如果仅将事件绑定到父方法,则和坐标相对于捕获事件的子画布而言。 问题答案: Tkinter不会将事件传递给父窗口小部件。但是,您可以通过使用绑定标签(或“ bindtags”)来模拟效果。 我能给出的
我是Flutter和Dart的新手。我有一些来自基于api json的数据,数据的变量称为。我从官方flutter留档中获取了这个示例代码,我希望能够使用变量并替换字符串文本,如下所示: 但是,我在第行标题中遇到了一个错误:const Text(data[index][“name]),,错误是类型常量创建的参数必须是常量表达式。此错误来自Android Studio本身(版本3.2) 但当我使用这
有趣的是,我尝试了一个switch case语句,它给了我同样的警告,因此我无法运行代码。是我做错了什么,还是让人无法使用if/else或switch语句而不认为有死代码?
问题内容: 即使在指定Container GridView的高度之后,我的代码仍在生成方形小部件。 上面代码的输出如左图所示。如何获得带有自定义高度小部件的GridView ,如右图所示? 问题答案: 关键是。这个值是用来确定的布局在。为了获得所需的外观,您必须将其设置为 ()。解决方案是这样的:
我一直在尝试在tkinter中创建一个自定义小部件,没什么特别的,只是一个包含一个条目和两个标签的框架。我希望标签和框架能够访问父应用程序的StringVars(即两个标签的textvariable,以及条目textvariable)。我认为通过将这些名称作为关键字args传递给初始化方法,这应该相当简单,但是我遇到了麻烦。这是我的密码: 我遇到了一个问题,我实际上无法将任何其他内容传递给我的新小