интервал в горизонтальном listview.builder

#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,
                      ),
                    ),
                  ),
                );
              },
            ),
  

Например, изображение
введите описание изображения здесь

Ответ №1:

добавьте поля и отступы столько, сколько захотите.

 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,
                ),
              ),
            ),
          );
        },
      )
  

Ответ №2:

Вы можете попробовать добавить a SizedBox с фиксированным height: или width: или даже оба между нужным вам контентом. Другим решением является добавление Padding с равными значениями.

Ответ №3:

Сначала вам нужно обернуть представление списка контейнером, карточкой или полем размера, если вы хотите горизонтальную прокрутку списка. Далее, как вы просто переносите возвращаемую ширину с помощью дополнения к дополнению, чтобы получить дополнение.

Попробуйте этот код:

 Container(
      height: 100,width: MediaQuery.of(context).size.width,
      child:
      ListView.builder(
        scrollDirection: Axis.horizontal,
        itemCount: 13,
        itemBuilder: (context, i) {
          return Padding(
            padding: const EdgeInsets.all(8.0),
            child: Container(
              width: 100,
              decoration: BoxDecoration(
                color: Colors.black,
                ),
              ),
            );
        },
      ),
    ),
  

Комментарии:

1. Не пишите каждое слово с заглавной буквы. Публикация в Stack Overflow подразумевает использование соглашений английского языка, включая правила для верхнего и нижнего регистра в словах.