Поиск виджета, который строит список поверх обычного экрана - PullRequest
0 голосов
/ 01 мая 2020

Кто-нибудь знает, как называется виджет, который показывает список, который находится над обычным экраном? Ссылка ниже показывает скриншот из другого приложения, который выглядит так, как будто я этого хочу. Я надеюсь, что скриншот проясняет, что я ищу. Заранее спасибо!

Вот скриншот

1 Ответ

0 голосов
/ 01 мая 2020

Вы можете построить, используя виджет диалога.

Следующий код поможет вам понять больше.

Примечание: я продемонстрировал использование нового виджета с отслеживанием состояния, потому что на снимке экрана вы хотите выбрать переключатель и изменение состояния невозможно, поэтому виджет с сохранением состояния необходимо. Если вы не хотите изменять состояние муравья, если вы не хотите вызывать setState, тогда вы можете создать виджет, где я вызываю виджет с состоянием.

class MyApp extends StatefulWidget {
  @override
  MyAppState createState() => MyAppState();
}

class MyAppState extends State<MyApp> {
  List list = List();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        color: Colors.red,
        child: Center(
          child: RaisedButton(
            child: Text("click!"),
            onPressed: () async {
              showDialog(
                  context: context,
                  builder: (_) {
                    return NewScreen();
                  });
            },
          ),
        ),
      ),
    );
  }
}

class NewScreen extends StatefulWidget {
  @override
  _NewScreenState createState() => _NewScreenState();
}

class _NewScreenState extends State<NewScreen> {
  @override
  Widget build(BuildContext context) {
    return Material(
      color: Colors.transparent,
      elevation: 0.0,
      child: Container(
        color: Colors.white,
        margin: EdgeInsets.all(40),
        child: ListView.builder(
          itemCount: 20,
          itemBuilder: (_, index) {
            return Text(index.toString());
          },
        ),
      ),
    );
  }
}
...