Flutter 颤振-如何缩小listview项的宽度

Flutter 颤振-如何缩小listview项的宽度,flutter,flutter-layout,Flutter,Flutter Layout,虽然我有一些Android开发的经验,但我还是一个新手。我正在尝试在flutter中创建一个页面,在这里我需要用谷歌地图覆盖整个页面,在页面的一侧,我需要显示图像列表 我可以用stack对象实现这一点,但不幸的是,图像列表覆盖了整个宽度,所有的触摸都转到列表而不是贴图 这是我的密码 @override Widget build(BuildContext context) { return SafeArea( child: new Scaffold( a

虽然我有一些Android开发的经验,但我还是一个新手。我正在尝试在flutter中创建一个页面,在这里我需要用谷歌地图覆盖整个页面,在页面的一侧,我需要显示图像列表

我可以用stack对象实现这一点,但不幸的是,图像列表覆盖了整个宽度,所有的触摸都转到列表而不是贴图

这是我的密码

@override
  Widget build(BuildContext context) {
    return SafeArea(
      child: new Scaffold(
          appBar: new AppBar(
            title: new Text("Tracker"),
            backgroundColor: Colors.blueAccent,
          ),
          drawer: Drawer(child: DrawerLayout()),
          body: _buildBody()),
    );
  }

  Widget _buildBody() {
    return Stack(children: <Widget>[
      _buildMap(),
      _buildImages(),
    ]);
  }

这是我的小部件,用于在屏幕右侧加载图像(不幸的是,这不会缩小宽度),而是覆盖整个宽度

Widget _buildImages() {
    return ListView.builder(
        itemCount: _images.length + 1,
        itemBuilder: (_, int index) {
            profile = _images[index]
            return new Container(
              child: Align(
                alignment: Alignment.topRight,
                child: FloatingActionButton(
                  mini: true,
                  materialTapTargetSize: MaterialTapTargetSize.padded,
                  child: _loadProfileImage(profile),
                ),
              ),
            );
        });
  }
我没有问题,显示在地图顶部的图像,但问题是它需要整个宽度

我想做两件事:

  • 在地图顶部显示图像,但将宽度环绕到固定大小
  • 并排显示地图和图像,但使地图占据尽可能多的空间
  • 在我的listview项目中添加了背景色,以显示它实际上占据了整个宽度,有没有一种方法可以包装该宽度


    您可以用大小框包装ListView并设置其宽度:

    SizedBox(
      width: MediaQuery.of(context).size.width * .3, // 30% of the screen
        child: ListView(
          children: [
            Placeholder(),
            Placeholder(),
            Placeholder(),
          ]
        )
    ),
    
    可以设置堆栈的对齐参数以对齐列表:

    Stack(
        alignment: Alignment.topRight,
    

    你能给我一个截图,看看你到底想实现什么吗?
    Stack(
        alignment: Alignment.topRight,