Как отцентрировать SingleChildScrollView, но растянуть фон для заполнения экрана? - PullRequest
0 голосов
/ 07 июня 2019

Я использую Flutter для веб-сайта. Я хочу сделать прокрутку веб-страницы, когда пользователь прокручивает вниз как обычный веб-сайт.

Я пытаюсь использовать Stack, чтобы я мог разместить собственный фон за виджетами. Этот фон должен прокручиваться при пользовательской прокрутке (необходимо придерживаться виджетов впереди, чтобы фон менялся).

(я не могу установить цвет фона, используя Scaffold, потому что мой фон использует CustomPainter)

Но я хочу центрировать виджеты на веб-странице, поэтому я обертываю SingleChildScrollView в Center виджет. Но теперь на большом горизонтальном экране CustomPaintWidget() не является экраном заполнения (есть пробел). Я пытаюсь заменить CustomPaintWidget() на Container для проверки, но та же проблема.

Вот мой код:

Center(
     child: SingleChildScrollView(
     child:Stack(children: <Widget>[
           CustomPaintWidget(),
           Widgets(),
     ],),

Кто-нибудь знает решение?

Как центрировать виджеты, а также растянуть фон?

Спасибо!

Ответы [ 3 ]

0 голосов
/ 07 июня 2019

SingleChildScrollView по определению - это дочерний элемент.

То, что вы должны попробовать, это

return SingleChildScrollView(
  scrollDirection: Axis.horizontal,
     child: ConstrainedBox(
       //Use MediaQuery.of(context).size.height for max Height
       constraints: BoxConstraints(minHeight: MediaQuery.of(context).size.height),
       child: Center(
         child: //Widget,
      ),
     ),
   );
0 голосов
/ 13 июня 2019

прочитайте этот пост, я думаю, это все, что вам нужно https://medium.com/@swav.kulinski/spike-parallax-in-flutter-seven-lines-of-code-16a1890d8d32

0 голосов
/ 07 июня 2019

Я думаю, вы можете попробовать что-то вроде:

@override
  Widget build(BuildContext context) {
    return Scaffold(
        body: Stack(
      children: <Widget>[
        CustomPaintWidget(),
        Center(
          child: SingleChildScrollView(
            child: Widgets(),
          ),
        )
      ],
    ));
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...