Как сложить клавиатуру на флаттер - PullRequest
0 голосов
/ 23 декабря 2018

В настоящее время у меня есть список виджетов, и я складываю нижнюю кнопку в верхней части стека, чтобы она всегда отображалась.но когда я нажимаю на текстовое поле, нижняя кнопка нажимается сверху, это очень некрасиво.Как я могу нажать на кнопку клавиатуры?

спасибо enter image description here

вот пример кода:

 class MyHomePage extends StatefulWidget {

 @override
 _MyHomePageState createState() => new _MyHomePageState();
 }

class _MyHomePageState extends State<MyHomePage> {

 final TextEditingController _controller = new TextEditingController();


  @override
  Widget build(BuildContext context) {

  return new Scaffold(
   appBar: new AppBar(
  ),
  body:   new Stack(
      children: <Widget>[

        new ListView(
      children: <Widget>[

            new Column(
              children: <Widget>[
  new Padding(
  padding: const EdgeInsets.all(100.0),),
  new Card(
    child: new Padding(
      padding: const EdgeInsets.all(10.0),
      child: new Row(
        children: <Widget>[
          new Expanded(
            child: new TextField(
              controller: _controller,
              decoration: new InputDecoration(hintText: "Enter an address"),
            ),
          ),

        ],
      ),
    ),
   ),
              ],

            )
          ],
        ),
        new Align
          (
          alignment: Alignment.bottomCenter,

          child :   new RaisedButton(
              child: new  Text("Button", style: TextStyle(color: Colors.black, fontWeight: FontWeight.w700, fontSize: 18.0,)),
              onPressed: (){
              },
              highlightElevation: 4.0,
              highlightColor  : Colors.white,
              shape: new RoundedRectangleBorder(borderRadius: new BorderRadius.circular(30.0))
          ),
        ),
       ]
      )
    );
  }
}

1 Ответ

0 голосов
/ 23 декабря 2018

Я бы порекомендовал поместить «Кнопку» в нижнюю часть стека внутри floatingActionButton.

floatingActionButton: FloatingActionButton.extended(
            elevation: 4.0,
            label: Text(Appliquer),
            onPressed: () {},
          ),
floatingActionButtonLocation:
              FloatingActionButtonLocation.centerDocked,

РЕДАКТИРОВАТЬ ПОСЛЕ КОДА БЫЛО ДОБАВЛЕНО:
Как я уже сказал в комментариях, я бы использовал FloatingActionButton / BottomNaviagtionBar или Save-Icon в AppBar

Здесь я добавил FloatingActionButton в ваш код:

class _MyHomePageState extends State<MyHomePage> {
  final TextEditingController _controller = new TextEditingController();

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
        appBar: new AppBar(),
        body: new Stack(children: <Widget>[
          new ListView(
            children: <Widget>[
              new Column(
                children: <Widget>[
                  new Padding(
                    padding: const EdgeInsets.all(100.0),
                  ),
                  new Card(
                    child: new Padding(
                      padding: const EdgeInsets.all(10.0),
                      child: new Row(
                        children: <Widget>[
                          new Expanded(
                            child: new TextField(
                              controller: _controller,
                              decoration: new InputDecoration(
                                  hintText: "Enter an address"),
                            ),
                          ),
                        ],
                      ),
                    ),
                  ),

                ],
              )
            ],
          ),
        ],
      ),
      floatingActionButton: FloatingActionButton.extended(
        icon: Icon(Icons.save), label: 
        new Text('Appliquer'), 
        onPressed: () { /*perform your Action here*/ },
      ),
    );
  }
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...