Zaprojektowałem bardzo ciężki projekt zagnieżdżony, jak poniżej, problem z rozszerzaniem listy nie wydaje się przewijać, co jest tego przyczyną, arkusz dolny jest rozszerzany, ale nie ma w nim żadnego widoku, jeśli przewijam według po dotknięciu tekstu „Godziny operacyjne” zaczyna się przewijać, ale gdy idzie w górę, nie mogę go zsunąć.
_showDialog(BuildContext context) {
print("_showDialog");
showModalBottomSheet(
context: context,
isScrollControlled: true,
builder: (BuildContext context) {
return DraggableScrollableSheet(
expand: false,
builder: (context, scrollController) {
return Container(
child: Stack(
children: <Widget>[
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Align(
alignment: Alignment.topCenter,
child: Container(
margin: EdgeInsets.symmetric(vertical: 8),
height: 8.0,
width: 70.0,
decoration: BoxDecoration(
color: Colors.grey[400],
borderRadius: BorderRadius.circular(10.0)))),
SizedBox(height: 16),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 24),
child: Text('Operational Hours',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: widget.isTab(context)
? TabTextStyles.mediumText
.copyWith()
.fontSize
: PhoneTextStyles.mediumText
.copyWith()
.fontSize)),
),
],
),
ListView(
controller: scrollController,
children: <Widget>[
SizedBox(height: 54.0),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 24),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
SizedBox(height: 20.0),
Text('Select days to add hours',
style: widget.isTab(context)
? TabTextStyles.mediumText.copyWith()
: PhoneTextStyles.mediumText.copyWith()),
]),
),
DaysList()
],
),
],
),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
color: Theme.of(context).backgroundColor,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(24.0),
topRight: Radius.circular(24.0),
),
),
);
},
);
},
);
}
flutter
flutter-layout
hiashutoshsingh
źródło
źródło
Odpowiedzi:
Popełniasz kilka błędów. Po pierwsze, umieścić widżety w
Column
które zawsze będzie widoczny na górze, drugi owińDaysList
inExpanded
i przejśćScrollController
do niego.To jest twoja metoda:
To jest twój
Column
:I tak
DaysList
powinien wyglądać twój :Wynik:
źródło