как добавить тело и панель приложения одного и того же градиента в Flutter - PullRequest
0 голосов
/ 26 апреля 2020

Я пытался добавить один и тот же LinearGradient на панель приложения и тело. Но два цвета градиента.

Я хочу градиент без каких-либо других.

return Container(
  decoration: BoxDecoration(
    gradient: CustomGradient.appBarGradient //body gradient
  ),
  child:Scaffold(
  resizeToAvoidBottomPadding: false,
  backgroundColor: Palette.transparent,
  appBar: AppBar(
    elevation: 0.0,
    centerTitle: true,
    title: //text,
    flexibleSpace: Container( //appBar gradient
           decoration: BoxDecoration(
             gradient: CustomGradient.appBarGradient
      ),
    ),
  ),
  body:

1 Ответ

2 голосов
/ 26 апреля 2020

Просто сделайте ваш appBar прозрачным.

Пример:

return Container(
  decoration: BoxDecoration(
    gradient: CustomGradient.appBarGradient,
  ),
  child: Scaffold(
    resizeToAvoidBottomPadding: false,
    backgroundColor: Colors.transparent,
    appBar: AppBar(
      elevation: 0.0,
      centerTitle: true,
      title: Text("test"),
      backgroundColor: Colors.transparent,
    ),
    body: SingleChildScrollView(
      child: Column(
        children: <Widget>[
          for (var i = 0; i < 10; i++) Text("Hello world", textScaleFactor: 4),
        ],
      ),
    ),
  ),
);

Если вы хотите, чтобы содержание вашего тела было расширено за appBar, используйте extendBodyBehindAppBar: true в вашем Scaffold (и оставьте backgroundColor: Colors.transparent, elevation: 0 в вашем appBar).

У вас есть другие решения, такие как складывание вашего appBar с вашим содержимым в теле или создание 2 различных градиентов для вашего appBar и вашего body, первый с тем же цветом окончания, что и начальный цвет второго.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...