水平listview.builder中的间距

时间:2020-11-08 12:28:15

标签: flutter flutter-layout

如何在listview.builder()中进行自动间距。例如,我在列中需要使用MainAxisAlignment.spaceEvenly之类的东西,但是在list view.builder()中需要它。我将有两个或三个不可滚动的水平因此,我需要为不同的屏幕尺寸在项目之间留出间距。您能帮我吗?

ListView.builder(
              scrollDirection: Axis.horizontal,
              itemCount: 3,//list.length expected two or three
              itemBuilder: (BuildContext context, int index) {
                return Container(
                  height: 100,
                  width: 100,
                  decoration: BoxDecoration(
                    borderRadius: const BorderRadius.all(Radius.circular(10.0)),
                    color: Colors.amber,
                    border: Border.fromBorderSide(
                      BorderSide(
                        color: Color(0xFF8D4AE9),
                        width: 1.0,
                      ),
                    ),
                  ),
                );
              },
            ),

例如图片 enter image description here

3 个答案:

答案 0 :(得分:0)

根据需要添加边距和填充。

ListView.builder(
        scrollDirection: Axis.horizontal,
        itemCount: 7,//list.length expected two or three
        itemBuilder: (BuildContext context, int index) {
          return Container(
            height: 100,
            width: 100,
            margin: EdgeInsets.all(10),// add margin 
            padding: EdgeInsets.all(10),// add padding
            decoration: BoxDecoration(
              borderRadius: const BorderRadius.all(Radius.circular(10.0)),
              color: Colors.amber,
              border: Border.fromBorderSide(
                BorderSide(
                  color: Color(0xFF8D4AE9),
                  width: 1.0,
                ),
              ),
            ),
          );
        },
      )

答案 1 :(得分:0)

您可以尝试在所需的内容之间添加具有固定的SizedBoxheight:或什至两者都固定的width:。另一种解决方案是将Padding添加为相等的值。

答案 2 :(得分:0)

首先,如果要水平滚动列表,则必须用容器,卡片或大小框包装列表视图。接下来,如何将返回宽度与填充物一起填充到填充物上。

尝试以下代码:

public class MachineChangeViewModel : Screen
{
    public MachineChangeViewModel()
    {

    }

    public MachineChangeViewModel MachineFromSite(int siteId, int machineFromSiteId, DateTime dateFromSite)
    {
        DisplayName = "Machine From Site";
        return this;
    }

    public MachineChangeViewModel MachineChange(int siteId, int machineFromSiteId, int machineToSiteId,  DateTime dateForChange)
    {
        DisplayName = "Machine Change";
        return this;
    }
}