Как переместить FlexibleSpaceBar в центр прокрутки SliverAppbar - PullRequest
0 голосов
/ 28 апреля 2020

Я хотел, чтобы заголовок настроек (который находится на гибкой клавише пробела) перемещался в центр, когда пользователь прокручивал вверх. Как я могу это сделать?

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

https://youtu.be/59MACs8jeAk

Вот мой код для экрана (не только часть, которая имеет отношение к делу):

 @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: CustomScrollView(slivers: <Widget>[
          SliverAppBar(
            title: Row(
              children: <Widget>[
                Column(
                  children: <Widget>[
                    Container(
                      margin: EdgeInsets.fromLTRB(0, 0, 0, 0),
                      child: IconButton(
                          onPressed: () => 
                         Navigator.pop(context),
                          //controller.toggle();
                          icon: Image.asset('assets/UI/menu.png')),
                    ),
                  ],
                )
              ],
            ),
            expandedHeight: 145.0,
            backgroundColor: Colors.white,
            //floating: true,
            pinned: true,
            elevation: 0.0,
            flexibleSpace: FlexibleSpaceBar(
              title: Row(
                children: <Widget>[

                  Container(
                      padding: EdgeInsets.fromLTRB(80, 0, 0, 0),
                      child: Text(
                        'Settings',
                        textAlign: TextAlign.left,
                        style: TextStyle(
                            color: Colors.black,
                            fontFamily: 'AvenirNext',
                            fontWeight: FontWeight.w600,
                            fontSize: 22.0),
                      )),
                ],
              ),
              background: Column(
                mainAxisAlignment: MainAxisAlignment.center,
                crossAxisAlignment: CrossAxisAlignment.start,
                children: <Widget>[
                  Container(
                      padding: EdgeInsets.fromLTRB(20, 40, 32, 0),
                      child: Text(
                        'Change Settings',
                        textAlign: TextAlign.left,
                        style: TextStyle(
                            color: Colors.black54,
                            fontFamily: 'AvenirNext',
                            fontWeight: FontWeight.w300,
                            fontSize: 16.0),
                      )),
                ],
              ),
            ),
          ),

1 Ответ

0 голосов
/ 28 апреля 2020

Я пытался проверить ваш кусок кода, но это не сработало. Но вы можете попробовать заменить эту часть:

title: Container(
padding: EdgeInsets.fromLTRB(80, 0, 0, 0),
child: Text(
  'Settings',
  textAlign: TextAlign.center,
  style: TextStyle(
      color: Colors.black,
      fontFamily: 'AvenirNext',
      fontWeight: FontWeight.w600,
      fontSize: 22.0),
)),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...