Программно закрыть модальный нижний лист
В приведенном ниже примере я открыл модальный нижний лист при нажатии поднятой кнопки. На открытом листе у меня есть еще один значок, который открывает другой лист, но я хочу закрыть первый лист после открытия второго нижнего простынь. Как я могу этого добиться?
import 'package:flutter/material.dart';
class SecondScreen extends StatefulWidget {
@override
_SecondScreenState createState() => _SecondScreenState();
}
class _SecondScreenState extends State<SecondScreen> {
@override
Widget build(BuildContext context) {
return Center(
child: Container(
child:RaisedButton(child: Text('Click'), onPressed: () => _openSheet()),
),
);
}
_openSheet() {
showModalBottomSheet(
context: context,
builder: (BuildContext context)
{
return Column(
children: <Widget>[
Container(
height: MediaQuery.of(context).size.height / 2,
width: MediaQuery.of(context).size.width,
child: IconButton(
icon: Icon(Icons.info),
iconSize: 50.0,
onPressed: () => _openSecondSheet(),
),
),
],
);
});
}
_openSecondSheet() {
showModalBottomSheet(
context: context,
builder: (BuildContext context) {
return Container(
height: MediaQuery.of(context).size.height / 3,
width: MediaQuery.of(context).size.width,
);
});
}
}
1 ответ
Решение
Открывая вторую овцу pop
первый.
onPressed: () {
Navigator.pop(context);
_openSecondSheet()
},