如何在列表中添加列表视图,然后将剩余空间(如果有)除以列表上方的1/3和列表下方的2/3

时间:2019-07-13 12:41:15

标签: listview flutter

我正在尝试创建一个包含“短”列表,5-6个项目的屏幕,并且该列表到位后,任何剩余空间都应在列表上方1/3划分,在列表下方2/3划分

它给我带来的问题是,它本身位于Listed.builder中的是Expanded,因此列表最终将所有空间划分为顶部和底部。

应确保整个列表可见,然后按照说明划分剩余空间。

我什至没有想到的是,如果列表在非常小的手机上,那可能会变得更加棘手,我可能需要在其中滚动列表。

我一直在玩一棵基本上在顶部有Column的树,然后:

  • 扩展(flex:1)
  • 展开(子级:ListVIew.builder)
  • 展开(flex:2)

这会拆分整个屏幕,并且列表不能保证完全显示。

我还尝试了使用Spacers,甚至添加了一个align(Aligment.offset),它实际上并不能完全起作用。

    class OverviewPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    var edition = Provider.of<Edition>(context);
    return Column(mainAxisSize: MainAxisSize.max, children: [
      Padding(padding: EdgeInsets.all(margin_20)),
      Expanded(flex: 1,),
      Expanded(
            child: Align(
                alignment: Alignment(0.0, -0.0),
                child: ListView.builder(
                itemCount: edition.editionContent.articles.length,
                itemBuilder: (BuildContext context, int index) {
                  return OverviewItem(EditionPage.overview, articleNo: index);
                })),
      ),
      Expanded(flex: 2,),
    ]);
  }
}

因此,第一个挑战是布局列表,并以列表上方的1/3和列表下方的2/3划分所有剩余空间。

理想情况下,这也可以在很小的屏幕上使用。这意味着将没有空间可分割,但是列表将是可滚动的。

1 个答案:

答案 0 :(得分:0)

这样,您就可以做所需的事情,像这样使用panel.upr <- image_read_pdf("whole2.pdf") final <- image_append(c(image_append(panel.upr),panel.l), stack = TRUE) plot(final) savePlot("final.pdf", type = "pdf") 而不是Spacer

Expanded

这应该向您显示所需的屏幕。