как создать собственный контейнер с тремя отдельными кнопками внутри - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь создать пользовательский виджет, который представляет собой скругленный прямоугольник, содержащий 3 кнопки iconBut, используемых для навигации.но, насколько я видел, iconButtons нельзя использовать вне виджетов материала, и я не знаю, как обернуть их в виджет, который не портит мой пользовательский интерфейс.

  1. просто контейнер с iconButtons выдает «виджет материала не найден, виджетам iconButton требуется виджет материала»

  2. при попытке обернуть виджет материала, я получаю позиционные аргументы, портя свой пользовательский интерфейс

  3. Я попытался обернуть мой контейнер в другие виджеты безрезультатно.

вот фрагмент моего кода, только одна из иконок вконтейнер.код повторяется дважды с другим значком и нажатием onPress перед закрытием виджета.Мне бы очень хотелось, чтобы мой интерфейс выглядел так, как я планировал, и чтобы эти кнопки работали.

  @override
  Widget build(BuildContext context) {
    return Container(
      height: 50.0,
      width: 200.0,
     // color: Colors.grey[800],
        decoration: new BoxDecoration(
          color: Colors.grey[800],
          borderRadius: new BorderRadius.all( Radius.circular(50.0)),
        ),
      child: Stack(
        children: <Widget>[
          Center(
            child: Row(
              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
              children: <Widget>[
                new Container(
                  child: Column(
                  mainAxisSize: MainAxisSize.max,
                      children: <Widget>[
                        IconButton(
                          icon: Icon(Icons.menu),
                          color: Colors.white,
                          onPressed: () {
                            print('test');
                          },
                        ) // IconButton
                      ], // <Widget>[]
                  ) //Column
                ), // Container

1 Ответ

0 голосов
/ 08 апреля 2019

Оберните ваш код в Scaffold, и он будет работать.

@override
Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(),
    body: Container(
      height: 50.0,
      width: 200.0,
      decoration: BoxDecoration(
        color: Colors.grey[800],
        borderRadius: new BorderRadius.all(Radius.circular(50.0)),
      ),
      child: Stack(
        children: [
          Center(
            child: Row(
              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
              children: [
                Container(
                  child: Column(
                    mainAxisSize: MainAxisSize.max,
                    children: [
                      IconButton(
                        icon: Icon(Icons.menu),
                        color: Colors.white,
                        onPressed: () {
                          print('test');
                        },
                      )
                    ],
                  ),
                )
              ],
            ),
          )
        ],
      ),
    ),
  ); // IconButton ], // [] ) //Column ), // Container
}
...