#flutter #dart
#флаттер #dart
Вопрос:
Нежелательное пространство между 2 контейнерами Я хочу удалить это дополнительное пространство между текстовым виджетом и представлением списка (ползунок карусели). Оба этих виджета встроены в виджет контейнера . Я не добавил никакого SizedBox или Spacer между этими 2 виджетами. Я не знаю, почему появляется это дополнительное пространство! Вот пример кода —
class _DashBoardState extends State<DashBoard> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [
SizedBox(
height: 50,
),
Container(
child: Text(
'First Text Box',
style: TextStyle(
fontSize: 22,
),
),
),
Container(
height: 220,
child: ListView(
children: <Widget>[
CarouselSlider(
height: 180.0,
enlargeCenterPage: true,
autoPlay: true,
aspectRatio: 16 / 9,
autoPlayCurve: Curves.fastOutSlowIn,
enableInfiniteScroll: true,
autoPlayAnimationDuration: Duration(milliseconds: 800),
viewportFraction: 0.8,
items: [
Container(
margin: EdgeInsets.all(5.0),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10.0),
image: DecorationImage(
image: NetworkImage(
"https://images.pexels.com/photos/2116475/pexels-photo-2116475.jpeg?
auto=compressamp;cs=tinysrgbamp;dpr=2amp;w=500"),
fit: BoxFit.cover,
),
),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Text(
'Usable Flower for Health',
style: TextStyle(
color: Colors.white,
fontWeight: FontWeight.bold,
fontSize: 18.0,
),
),
Padding(
padding: const EdgeInsets.all(15.0),
child: Text(
'Lorem Ipsum is simply dummy text use for printing and type script',
style: TextStyle(
color: Colors.white,
fontSize: 15.0,
),
textAlign: TextAlign.center,
],
),
],
),
)
] ,
),
);
}
}
Комментарии:
1. Какой у вас карусельный слайдер? Используете ли вы пакет carousel_slider? Вы говорите, что это ListView, но ListView не обладает всеми этими свойствами. Можете ли вы предоставить код CarouselSlider (хотя бы минимальный код) для воспроизведения?
2. Я использовал эту версию карусельного слайдера в файле pubsec.yaml: carousel_slider: ^ 1.4.1
Ответ №1:
Я думаю, что дополнительное пространство исходит из заполнения по умолчанию в ListView. Из документации здесь:
«По умолчанию ListView автоматически заполняет прокручиваемые края списка, чтобы избежать частичных препятствий, обозначенных заполнением MediaQuery. Чтобы избежать такого поведения, переопределите с помощью свойства заполнения нулем. «
Добавить:
padding: EdgeInsets.all(0)
В вашем ListView
виджете установите для него значение 0.
Я попробовал это с вашим примером кода, он правильно удаляет лишнее пространство.