Как использовать getOuterPath в ContinuousRectangleBorder, чтобы он выглядел как перевернутая круговая граница? - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть SliverAppBar, которому я пытаюсь придать пользовательскую форму:

return SliverAppBar(
   shape: MyShapeBorder(10),

Я играл с ContinuousRectableBorder:

class MyShapeBorder extends ContinuousRectangleBorder {
  const MyShapeBorder(this.curveHeight);
  final double curveHeight;

  @override
  Path getOuterPath(Rect rect, {TextDirection textDirection}) => Path()
    ..lineTo(0, rect.size.height)
    //Don't know what to put here, quadraticBezierTo? conicTo? ArcTo? and what would be the values?
    )
    //And then I assume a Line to and then another function?
    ..close();
}

, но я могу кажется, не в состоянии понять это. Вот как бы я хотел, чтобы это выглядело так: enter image description here

Похоже на то, что у меня здесь:

enter image description here

Но я смог создать это намного проще, используя:

decoration: BoxDecoration(
          color: Colors.white,
          borderRadius: BorderRadius.only(topLeft: Radius.circular(10), topRight: Radius.circular(10));
        ),

Но я не могу сделать это сейчас, потому что вместо упаковки белого бита в контейнер я хотел бы предоставить пользовательская форма для зеленого бита (SliverAppBar)

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