Для горизонтальной прокрутки вам нужны два разных ListView для каждого раздела
class GetFilters extends StatelessWidget {
GetFilters();
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Text('Payment options'),
ListView(
scrollDirection: Axis.horizontal,
children: [
Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Icon(Icons.call),
Text('Afterpay'),
],
),
//More items
]
),
Text('Categories'),
ListView(
scrollDirection: Axis.horizontal,
children: [
Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Icon(Icons.call),
Text('Afterpay'),
],
),
//More items
]
)
]
);
}
}
Для кнопок я бы обернул каждый элемент с помощью GestureDetector, например:
GestureDetector(
onTap: () => {},
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Container(
padding: EdgeInsets.all(12),
decoration: new BoxDecoration(
color: Colors.blue,
shape: BoxShape.circle,
),
child: Icon(Icons.call),
),
Text('Afterpay'),
],
),
),
Вместо этого вы можете использовать InkWell GestureDetector на тот случай, если вы хотите получить визуальную обратную связь с материалом при нажатии на элемент
Также я рекомендую вам использовать предметы вместо действий в имени класса виджета. GetFilters можно назвать Filters, FiltersSection