Поэтому я пытаюсь создать экран со стеком с прокруткой и использую пакет AlignPositioned для выравнивания позиционированных виджетов в стеке. Я пытался использовать расширенные виджеты LayoutBuilders. Я просто не могу понять, как это сделать. Dynami c (https://pub.dev/packages/align_positioned)
Внизу много названий городов, и экран можно прокрутить только до 1-2 из них в зависимости от высоты контейнера. Вот мой текущий код всякий раз, когда я устанавливаю постоянную высоту Контейнер, пользовательский интерфейс не выдает ошибку, но экран не полностью прокручивается
return SafeArea(
child: Scaffold(
body: SingleChildScrollView(
child: Container(
height: MediaQuery.of(context).size.height,
child: Stack(
children: <Widget>[
Positioned(
top: 0,
child: TopArc(), // The blue background circle
),
AlignPositioned(
dy: 40,
alignment: Alignment.topCenter,
child: Padding(
padding: const EdgeInsets.symmetric(
horizontal: 16, vertical: 4),
child: AutoSizeText(
"Choose Your Location",
stepGranularity: 1,
maxLines: 1,
style: TextStyle(
fontSize: 38,
color: Colors.white,
// This is the maximum value then the AutoSizeText widget will shrink it until it can fit a single line.
fontWeight: FontWeight.bold,
),
),
),
),
AlignPositioned(
dy: 90,
alignment: Alignment.topCenter,
child: StreamBuilder<QuerySnapshot>(
stream: Firestore.instance
.collection('locations')
.snapshots(),
builder: (context, snapshot) {
if (snapshot.hasError) {
return CircularProgressIndicator();
}
if (!snapshot.hasData) {
return CircularProgressIndicator();
}
return ContentTile(
child: ListView.builder(
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemCount: snapshot.data.documents.length,
itemBuilder: (ctx, int i) {
final document = snapshot.data.documents[i];
return LocationExpansionTile(
document.documentID, document["cityName"]);
},
),
);
},
),
),
],
),
),
)),
);