#flutter #dart
Вопрос:
Всем привет, я хочу обрезать контейнер сверху по центру.Я хочу, чтобы нижняя панель навигации выглядела так, как показано на рисунке ниже
Я попробовал использовать пользовательский класс clipper, но не добился успеха.
Мой Код
class TriangleClipper extends CustomClipper<Path> {
@override
Path getClip(Size size) {
Path path_0 = Path();
path_0.moveTo(0, size.height);
path_0.lineTo(0, 0);
path_0.lineTo(size.width * 0.3750000, 0);
path_0.quadraticBezierTo(size.width * 0.4218750, size.height * -0.0017500,
size.width * 0.4300000, size.height * 0.0550000);
path_0.cubicTo(
size.width * 0.4749625,
size.height * 0.2266000,
size.width * 0.5257750,
size.height * 0.2267500,
size.width * 0.5708875,
size.height * 0.0550000);
path_0.quadraticBezierTo(
size.width * 0.5790125, 0, size.width * 0.6250000, 0);
path_0.lineTo(size.width, 0);
path_0.lineTo(size.width, size.height);
path_0.lineTo(0, size.height);
path_0.close();
return path_0;
}
@override
bool shouldReclip(TriangleClipper oldClipper) => false;
}
Используется так
ClipPath(
clipper: TriangleClipper(),
child: Container(
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(color: Colors.white60)),
width: MediaQuery.of(context).size.width,
height: 80,
),
),
Выходное изображение:
Комментарии:
1. Проверьте это: pub.dev/пакеты/animated_bottom_navigation_bar
Ответ №1:
как насчет использования кнопки плавающего действия notch, notch:
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
floatingActionButton: FloatingActionButton(
onPressed: () { },
tooltip: 'Increment',
child: Icon(Icons.add),
elevation: 2.0,
),
bottomNavigationBar: BottomAppBar(
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[],
),
shape: CircularNotchedRectangle(),
color: Colors.blueGrey,
),
);
Комментарии:
1. Спасибо, но я получаю ошибку «Именованный параметр ‘notchedShape’ не определен».
2. Я понял, теперь это только «форма».
3. Любой способ сделать прозрачную кнопку fab, например, отобразить фон карты нижней панели навигации и кнопку fab
4. попробуйте Scaffold( extendBody: верно,