我正在尝试实现一个水平列表视图,其中显示了从Flatter image_picker插件中提取的图像。
它的工作正常,如果我不使用列表视图,只显示一个单一的图像。然而,我试图使用多个图像,只要我在列表视图中的小部件只是显示为黑色。我的列表视图代码如下:
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () async {
Navigator.pushReplacementNamed(context, 'inventory');
return false;
},
child: Scaffold(
appBar: AppBar(
backgroundColor: Colors.green[700],
title: Text(
'MyApp',
textAlign: TextAlign.center,
),
leading: new IconButton(
icon: new Icon(Icons.arrow_back),
onPressed: () {
Navigator.pushReplacementNamed(
context,
'inventory');
},
),
actions: <Widget>[
Padding(
padding: EdgeInsets.only(right: 10.0),
child: Container(
width: 50,
height: 50,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: Colors.white, //remove this when you add image.
),
child: GestureDetector(
onTap: (){
Navigator.pushNamed(context,'profile');
},
child: Image(
image:NetworkImage("imageUrl goes here"),
width: 120,
height: 120,
fit: BoxFit.cover,
),
),
),
)
],
),
body: SafeArea(
child: Column(
children: [
pickedFile == null ?
GestureDetector(
onTap: () {
_showMyDialog();
setState(() {
});
},
child: Container(
width: 200,
height: 200,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('Click to add a Photo',textAlign:
TextAlign.center,style: TextStyle(fontSize: 24),),
SizedBox(height: 20,),
Icon(
Icons.add_circle_outline,
color: Colors.grey[700],
size: 30,
),
],
),
margin: EdgeInsets.all(20.0),
decoration: BoxDecoration(
border: Border.all(width: 2,color: Colors.grey),
shape: BoxShape.circle
),
),
)
:
GestureDetector(
onTap: () {
_showMyDialog();
setState(() {
});
},
child: ListView.builder(
shrinkWrap: true,
scrollDirection: Axis.horizontal,
itemCount: _imageFileList!.length,
itemBuilder: (BuildContext context, int index) {
return kIsWeb
? Image.network(_imageFileList![index].path)
: Image.file(File(_imageFileList!
[index].path));
}
)
],
),
),),
);
}
}
我没有显示整个代码,因为页面太长,但是页面的其余部分工作正常。如果我删除Listview构建器,而只是使用下面的测试,它就可以正常工作。我做错了什么?
child: Row(
children: [
kIsWeb
? Container(
child: Image.network(_imageFileList![index].path))
: Container(
child: Image.file(File(_imageFileList![index].path)));
}
),
],
),
请帮忙。
**用我的完整部件编辑了上面的代码
设法解决了我的问题。这与需要添加的高度约束有关。在这个链接中找到了解决方案
如何在Flatter中向列添加ListView?
要么使用Row
,要么使用ListView
,不能两者都使用。
您可以使用带有列表的行。生成
:
Row(
children: List.generate(_imageFileList!.length,
(i) => kIsWeb
? Container(child: Image.network(_imageFileList![index].path))
: Container(child: Image.file(File(_imageFileList![index].path))
),
或者ListView
在没有行的情况下如何使用它
将溢出,而在这种情况下,ListView
可能是您想要使用的小部件<如果内容大于宽度,则代码>行列表视图
将充当其自己的滚动视图。
我还要再次检查您是否需要扩展的小部件。这通常用于一行(或类似的小部件)中。
问题内容: 我想要一个带有“人”名称的ListView,但是在启动应用程序时,在ListView上,我看到了一些奇怪的字符串而不是(字符串)名称。我认为这是“人”对象的强制问题。我不知道ListView应该是ListView还是ListView。因为当我尝试在listview上设置项目时,使用setItems(ObservableList)可以得到显示在列表上的怪异字符串。.这是代码: MainA
问题内容: 我有一个带有ArrayAdapter的ListView,其中包含带有图像和字符串的行。直到我确定图像的加载速度变慢,这样我才能在显示列表之前无法加载图像,这样效果很好。因此,我开始使用加载图像到单独的线程中AsyncTask。 在开始滚动列表之前,我对结果感到非常满意。加载了错误的图像,看起来好像不是图像稍后出现的问题。如果我尝试对列表进行排序,问题将变得非常严重,并且没有图像在右行。
我是一个新手,尝试在我的一条路线中添加一个列表视图,单击该列表视图时,会将我带到每个列表卡特定的新路线。 这是我的路线代码: 我收到的问题是: 我尝试让ListView成为自己的类,然后将其添加到我的SecondRoute主体中,但同样的错误出现了。 102号线是二年级的脚手架。 谢谢你的帮助
我无法在测试应用程序的设备上显示我的广告单元。 我正在使用firebase_admob插件 这是我使用的代码: 这是我得到的日志: 所以我这样指定了我设备的ID: 但广告仍然没有出现。这是我得到的日志: 如果我使用Google提供的测试广告,广告效果很好,这是我得到的日志: 我的广告单元怎么了?我在两天前创建了它,我是否等待了足够长的时间才让它出现? 感谢您的帮助;)
我是Android的新手,我正在做一个应用程序,可以显示用户上传的衣服图片。我可以完美地上传图片,但由于某种原因,我无法将firebase实时数据库中的图像显示到中。几周来我一直在寻找解决办法。 请帮帮我。非常感谢你抽出时间。 topactivity.java 下面是我在TopsActivity.java中所做的更改