Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在水平ListView的子级内创建水平列表视图_Listview_Flutter - Fatal编程技术网

在水平ListView的子级内创建水平列表视图

在水平ListView的子级内创建水平列表视图,listview,flutter,Listview,Flutter,我是一个新手,我想在水平列表视图的子视图中单击时显示一个水平列表 我试过使用这段代码,但我不知道在InkWell中录制时如何添加子ListView 还有另一种方法 class Category extends StatelessWidget { final String image_location; final String image_caption; Category({this.image_location, this.image_caption}); @ove

我是一个新手,我想在水平列表视图的子视图中单击时显示一个水平列表

我试过使用这段代码,但我不知道在InkWell中录制时如何添加子ListView 还有另一种方法

   class Category extends StatelessWidget {
  final String image_location;
  final String image_caption;

  Category({this.image_location, this.image_caption});

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(2.0),
      child: InkWell(
        onTap: () { 
          //Show the other listView
        },
        child: Container(
          width: 100.0,
          child: ListTile(
            title: Image.asset(
              image_location,
              width: 100.0,
              height: 80.0,
            ),
            subtitle: Container(
              alignment: Alignment.topCenter,
              child: Text(image_caption, style: new TextStyle(fontSize: 12.0),),
            )
          ),
        ),
      ),
    );
  }
}
我的列表视图

    class HorizontalList extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      height: 80.0,
      child: ListView(
        scrollDirection: Axis.horizontal,
        children: <Widget>[
          Category(
            image_location: 'images/cats/tshirt.png',
            image_caption: 'shirt',
          ),

          Category(
            image_location: 'images/cats/dress.png',
            image_caption: 'dress',
          ),

          Category(
            image_location: 'images/cats/jeans.png',
            image_caption: 'pants',
          ),

        ],
      ),
    );
  }
}
class HorizontalList扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回容器(
身高:80.0,
子:ListView(
滚动方向:轴水平,
儿童:[
类别(
图片位置:'images/cats/tshirt.png',
图片(u)说明:"衬衫",,
),
类别(
图片位置:'images/cats/dress.png',
图片(u)说明:"连衣裙",,
),
类别(
图片位置:'images/cats/jeans.png',
图片_说明:“裤子”,
),
],
),
);
}
}
这是我需要的一个例子


我尝试使用
堆栈
列表视图
,以及其他常见的小部件来实现类似的功能。


导入“包装:颤振/材料.省道”;
void main(){
runApp(新的MyApp());
}
类MyApp扩展了无状态小部件{
小部件构建(构建上下文){
返回新材料PP(
标题:“演示应用程序”,
主题:新主题数据(
主样本:颜色。蓝色,
),
主页:新建MyHomePage(),
);
}
}
类MyHomePage扩展StatefulWidget{
@凌驾
_MyHomePageState createState()=>new_MyHomePageState();
}
类_MyHomePageState扩展状态{
@凌驾
小部件构建(构建上下文){
归还新脚手架(
正文:SimpleTab(),
);
}
}
类自定义选项卡{
const CustomTab({this.title,this.color});
最后的字符串标题;
最终颜色;
}
类SimpleTab扩展StatefulWidget{
@凌驾
_SimpleTabState createState()=>_SimpleTabState();
}
类_SimpleTableState扩展了状态
使用SingleTickerProviderStateMixin{
@凌驾
void initState(){
super.initState();
}
字符串selectedContainer=“”;
风险值数据=[
{
“姓名”:“购物”,
“icon”:Icons.local\u配送,
“子菜单”:[
“行动1”,
“行动2”,
“行动1”,
“行动2”,
“行动1”,
“行动2”,
“行动1”,
“行动2”
]
},
{
“名称”:“服务”,
“icon”:Icons.room\u服务,
'子菜单':[“操作3”,“操作5”]
},
{
“姓名”:“酒店”,
“icon”:Icons.hotel,
'子菜单':[“操作4”,“操作5”]
},
{
“名称”:“更多”,
“icon”:Icons.more,
'子菜单':[“操作6”,“操作7”]
},
{
“名称”:“自定义”,
“icon”:Icons.add\u到\u照片,
'子菜单':[“操作8”,“操作9”]
},
{
'name':'Custom2',
“icon”:Icons.add\u到\u照片,
'子菜单':[“操作10”,“操作11”]
},
{
'name':'Custom3',
“icon”:Icons.add\u到\u照片,
'子菜单':[“操作11”,“操作12”]
},
{
'name':'Custom4',
“icon”:Icons.add\u到\u照片,
'子菜单':[“操作13”,“操作14”]
},
];
@凌驾
小部件构建(构建上下文){
//selectedContainer=“”;
返回脚手架(
背景颜色:颜色。蓝灰色,
主体:堆栈(
儿童:[
SingleChildScrollView(
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[],
),
),
对齐(
对齐:对齐.bottomCenter,
子项:底部栏(数据),
)
],
),
);
}
小部件底部栏(数据){
退回新货柜(
页边距:仅限边集(底部:10),
约束:新的BoxConstraints(
最小高度:40.0,
最大高度:140.0,
),
颜色:颜色。透明,
子:列(
mainAxisSize:mainAxisSize.min,
mainAxisAlignment:mainAxisAlignment.start,
儿童:[
扩大(
子项:createTopMenu(),
),
扩大(
子:新列表视图(
滚动方向:轴水平,
儿童:数据
.map((e)=>列(
mainAxisAlignment:mainAxisAlignment.end,
mainAxisSize:mainAxisSize.min,
儿童:[
动画容器(
高度:selectedContainer!=e['name']?50:60,
宽度:selectedContainer!=e['name']?70:80,
持续时间:持续时间(毫秒:150),
曲线:Curves.FastOutSwowin,
儿童:手势检测器(
子容器:新容器(
颜色:颜色。透明,
页边距:仅限边集(右:20,左:4),
子:动画容器(
装饰:新盒子装饰(
颜色:颜色,白色,
形状:BoxShape.circle,
),
持续时间:持续时间(毫秒:150),
曲线:Curves.FastOutSwowin,
宽度:selectedContainer!=e['name']
? 30
: 40,
子:新布局生成器(
生成器:(上下文,约束){
返回填充(
填充:边缘设置。全部(4),
孩子:新图标(
e[“图标”],
大小:constraint.max.width-16,
颜色: