如何在 if 条件下创建图像?
How to create image with if conditions on flutter?
有一个容器,里面有像这样的图像
Container(
child: GestureDetector(
onDoubleTap: () {
//print("double tap");
showAlertDialog(context);
call(url);
},
//child: Image.asset('resimler/primeLogo.png'),
child: Image.memory(
image!,
fit: BoxFit.contain,
width: MediaQuery.of(context).size.width * 0.3,
height: MediaQuery.of(context).size.height * 0.3),
),
这个容器允许我在页面中显示图像。然而
我希望只有当x变量大于100时才显示这张图片,否则根本不会出现。为此,我尝试了这个。
if(x>100){
return new Container(
child: GestureDetector(
onDoubleTap: () {
//print("double tap");
showAlertDialog(context);
call(url);
},
//child: Image.asset('resimler/primeLogo.png'),
child: Image.memory(
image!,
fit: BoxFit.contain,
width: MediaQuery.of(context).size.width * 0.3,
height: MediaQuery.of(context).size.height * 0.3),
),
)],
}else{
return null;
}
我该怎么做?感谢您的帮助。
在你想要显示照片的地方,你将用 x>100:'resimler/primeLogo.png'?null
替换它
希望这个小部件在 column/stack 内,或类似的东西。您不必使用 else
状态。
只需使用if(x>100) Container()
。此外,您可以使用 Visibility
小部件来处理此类情况。
例子
Column(
children: [
if(x> 100) Container(),
开启时 child
使用 Visbilty
Visibility(
visible: x > 100,
child: Image(image: image),
),
此外,如果您仍想使用 else state
,请按照以下方式操作:
- 在状态中创建一个方法
- 或使用getter
get getWIdget => {
if (x > 100)
Container()
/// for empty space
else
SizedBox()
};
Widget getWidgetWithParameter(int x) {
if(x>100) return Image(image: );
else return SizedBox();
}
Stateless/Stateful 小部件的 build
方法总是需要 return 一个 Widget
。如果您不想在 x 不大于 100 时显示任何内容,那么在 else
块中只需 return 一个空的 SizedBox
或 Container
.
你可以用这个 (x>0) 吗? Widget() : Widget() 条件。
Container(
child: GestureDetector(
onDoubleTap: () {
//print("double tap");
showAlertDialog(context);
call(url);
},
//child: Image.asset('resimler/primeLogo.png'),
child: (x > 100) ? Image.memory(
image!,
fit: BoxFit.contain,
width: MediaQuery.of(context).size.width * 0.3,
height: MediaQuery.of(context).size.height * 0.3),
) : Container(),
),
),
有一个容器,里面有像这样的图像
Container(
child: GestureDetector(
onDoubleTap: () {
//print("double tap");
showAlertDialog(context);
call(url);
},
//child: Image.asset('resimler/primeLogo.png'),
child: Image.memory(
image!,
fit: BoxFit.contain,
width: MediaQuery.of(context).size.width * 0.3,
height: MediaQuery.of(context).size.height * 0.3),
),
这个容器允许我在页面中显示图像。然而 我希望只有当x变量大于100时才显示这张图片,否则根本不会出现。为此,我尝试了这个。
if(x>100){
return new Container(
child: GestureDetector(
onDoubleTap: () {
//print("double tap");
showAlertDialog(context);
call(url);
},
//child: Image.asset('resimler/primeLogo.png'),
child: Image.memory(
image!,
fit: BoxFit.contain,
width: MediaQuery.of(context).size.width * 0.3,
height: MediaQuery.of(context).size.height * 0.3),
),
)],
}else{
return null;
}
我该怎么做?感谢您的帮助。
在你想要显示照片的地方,你将用 x>100:'resimler/primeLogo.png'?null
希望这个小部件在 column/stack 内,或类似的东西。您不必使用 else
状态。
只需使用if(x>100) Container()
。此外,您可以使用 Visibility
小部件来处理此类情况。
例子
Column(
children: [
if(x> 100) Container(),
开启时 child
使用 Visbilty
Visibility(
visible: x > 100,
child: Image(image: image),
),
此外,如果您仍想使用 else state
,请按照以下方式操作:
- 在状态中创建一个方法
- 或使用getter
get getWIdget => {
if (x > 100)
Container()
/// for empty space
else
SizedBox()
};
Widget getWidgetWithParameter(int x) {
if(x>100) return Image(image: );
else return SizedBox();
}
Stateless/Stateful 小部件的 build
方法总是需要 return 一个 Widget
。如果您不想在 x 不大于 100 时显示任何内容,那么在 else
块中只需 return 一个空的 SizedBox
或 Container
.
你可以用这个 (x>0) 吗? Widget() : Widget() 条件。
Container(
child: GestureDetector(
onDoubleTap: () {
//print("double tap");
showAlertDialog(context);
call(url);
},
//child: Image.asset('resimler/primeLogo.png'),
child: (x > 100) ? Image.memory(
image!,
fit: BoxFit.contain,
width: MediaQuery.of(context).size.width * 0.3,
height: MediaQuery.of(context).size.height * 0.3),
) : Container(),
),
),