#flutter #dart #android-bottomappbar
#трепетание #dart #android-нижняя панель приложений
Вопрос:
Я хочу создать закругленную нижнюю панель приложений, подобную этой.
Закругленная нижняя панель приложений:
Но это выглядит так… Закодированная нижняя панель приложений:
Как мне избавиться от этой белой части?
return ClipRRect(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(25),
topRight: Radius.circular(25),
bottomRight: Radius.circular(25),
bottomLeft: Radius.circular(25),
),
child: Padding(
padding: const EdgeInsets.only(bottom:20.0),
child: BottomAppBar(
shape: CircularNotchedRectangle(),
child: new Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
IconButton(
icon: Icon(Icons.menu),
color: Colors.white,
onPressed: () {},
),
IconButton(
icon: Icon(Icons.search),
color: Colors.white,
onPressed: () {},
),
],
),
color: Colors.blueGrey,
),
)
); ```
Ответ №1:
Как предложил @Jagadish, я использовал Shape: RoundedRectangleBorder
округлую нижнюю панель приложений. Однако для получения зубчатой панели я использовал:
shape: AutomaticNotchedShape(
RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(25),
),
StadiumBorder(),
),
... //Codes=
),
Это также дает выемку для расширенной плавающей кнопки действия и (я думаю) для кнопок с различными формами.
Ответ №2:
Виджет панели приложений имеет свойство shape, и это то, что вы должны использовать, чтобы получить желаемые результаты, измените свой код на этот
BottomAppBar(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(
topLeft: Radius.circular(25),
topRight: Radius.circular(25),
bottomRight: Radius.circular(25),
bottomLeft: Radius.circular(25),
),
),
... //Your codes
),
Комментарии:
1. Спасибо! Но я также хочу сохранить круглый прямоугольник с вырезами с плавающей кнопкой в центре. Так можно ли одновременно задать форму для RoundedRectangleBorder и CircularNotchedRectangle
2. pub.dev/packages/convex_bottom_bar . Проверьте this…it может быть, это будет полезно для вас! Если нет, скажите мне, я найду другой
3. Я использовал форму: AutomaticNotchedShape( RoundedRectangleBorder(), StadiumBorder()). Он сделал то, что я хотел.