Как выровнять кнопку внутри виджета в Flutter

#flutter #button #widget #alignment

#flutter #кнопка #виджет #выравнивание

Вопрос:

Попытка внести одно небольшое изменение без необходимости платить разработчику…. Я хочу выровнять кнопку по нижней части экрана, но, похоже, я могу поместить ее только в текстовую область с возможностью прокрутки. Он должен быть на дисплее, чтобы зрителю не приходилось прокручивать, чтобы увидеть кнопку.

введите описание изображения здесь

Вот код с этой страницы:

 Widget showEveryday2Card() {
    return FlipCard(
      onFlip: () => _sound.playLocal("shuffle.mp3"),
      direction: FlipDirection.HORIZONTAL, // default
      //front: Image.asset('images/cards/24.png'),
      front: Container(
        color: Colors.white,
        child: Align(
          alignment: Alignment.center,
          child: Image.asset('images/cards/24.png'),
        ),
      ),
      back: Container(
        color: Colors.white,
        child: Stack(children: <Widget>[
          Positioned.fill(
            child: Align(
              alignment: Alignment.center,
              child: Image.asset('images/cards/cardbacks/back24.png'),
            ),
          ),
          Center(
            child: Container(
              padding: EdgeInsets.only(
                  top: (MediaQuery.of(context).size.height > 800)
                      ? 20
                      : (MediaQuery.of(context).size.height > 700) ? 10 : 0),
              height: 0.5 * MediaQuery.of(context).size.height,
              width: 0.8 * MediaQuery.of(context).size.width,
              child: Center(
                child: CupertinoScrollbar(
                  isAlwaysShown: true,
                  controller: _controller,
                  child: ListView(children: <Widget>[
                    Text(
                      "Scrollable text",
                      style: TextStyle(
                        fontFamily: 'GillSansMT',
                        fontWeight: FontWeight.normal,
                        color: Colors.black,
                        fontSize: (MediaQuery.of(context).size.height > 900)
                            ? 30
                            : 14,
                      ),
                    ),
                    new RaisedButton(
                      onPressed: () {
                        Navigator.pop(context);
                        },
                        child: Text('Go back!'),
                    )
                  ]),
                ),
              ),
            ),
          ),
        ]),
      ),
    );
  }  

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

Спасибо!

Ответ №1:

 return FlipCard(
  onFlip: () => _sound.playLocal("shuffle.mp3"),
  direction: FlipDirection.HORIZONTAL, // default
  //front: Image.asset('images/cards/24.png'),
  front: Container(
    color: Colors.white,
    child: Align(
      alignment: Alignment.center,
      child: Image.asset('images/cards/24.png'),
    ),
  ),
  back: Container(
    color: Colors.white,
    child: Stack(children: <Widget>[
      Positioned.fill(
        child: Align(
          alignment: Alignment.center,
          child: Image.asset('images/cards/cardbacks/back24.png'),
        ),
      ),
      Center(
        child: Container(
          padding: EdgeInsets.only(
              top: (MediaQuery.of(context).size.height > 800)
                  ? 20
                  : (MediaQuery.of(context).size.height > 700)
                      ? 10
                      : 0),
          height: 0.5 * MediaQuery.of(context).size.height,
          width: 0.8 * MediaQuery.of(context).size.width,
          // Made some changes here
          child: Column(children: [
            Expanded(
              child: CupertinoScrollbar(
                  isAlwaysShown: true,
                  controller: _controller,
                  child: ListView(children: <Widget>[
                    Text("Scrollable text" * 1000,
                        style: TextStyle(
                          fontFamily: 'GillSansMT',
                          fontWeight: FontWeight.normal,
                          color: Colors.black,
                          fontSize:
                              (MediaQuery.of(context).size.height > 900)
                                  ? 30
                                  : 14,
                        ))
                  ])),
            ),
            // SizedBox(height: 10), // Uncomment if you need some space
            RaisedButton(
              onPressed: () {
                Navigator.pop(context);
              },
              child: Text('Go back!'),
            )
          ]),
        ),
      ),
    ]),
  ),
);
  

Попробуйте заменить тело функции этим кодом.