Вы можете скопировать пасту и запустить полный код ниже
Вы можете использовать Expanded flex
фрагмент кода
Expanded(
flex: 1,
child: Container(child: Text("_statusOptions(categories)"))),
Expanded(
flex: 4,
child: Container(
color: Colors.blue,
child: ListView.builder(
itemCount: categories.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(categories[index].product),
);
}),
),
),
рабочая демонстрация

полный код
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class Category {
String product;
Category({this.product});
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
_counter++;
});
}
Future<List<Category>> getCategories() {
List<Category> categoryList = [
Category(product: "A"),
Category(product: "B"),
Category(product: "C"),
Category(product: "D"),
Category(product: "E"),
Category(product: "F"),
Category(product: "G"),
Category(product: "H"),
Category(product: "I"),
Category(product: "J"),
Category(product: "K"),
Category(product: "L"),
];
return Future.value(categoryList);
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
body: FutureBuilder(
future: getCategories(),
builder: (context, snapshot) {
if (snapshot.hasData) {
//final categories = json.decode(snapshot.data.toString());
final categories = snapshot.data;
return _mainPageBody(categories);
} else {
return Center(
child: CircularProgressIndicator(),
);
}
}),
),
);
}
Widget _mainPageBody(categories) {
return Column(
children: <Widget>[
//_statusOptions(categories),
Expanded(
flex: 1,
child: Container(child: Text("_statusOptions(categories)"))),
Expanded(
flex: 4,
child: Container(
color: Colors.blue,
child: ListView.builder(
itemCount: categories.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(categories[index].product),
);
}),
),
),
],
);
}
}