Касание кнопки блокировки строки состояния каркаса

#flutter #user-interface #touch #statusbar #scaffold

#флаттер #пользовательский интерфейс #касание #Строка состояния #каркас

Вопрос:

Хотя я нахожусь в полноэкранном режиме, где строка состояния скрыта, но все же моя кнопка меню в правом верхнем углу не получает касания. Вы можете видеть на картинке, где я выбрал верхнюю панель, которая получает касание.

введите описание изображения здесь

Половина моей кнопки меню получает касание, а половина — нет.

Я также сфотографировал инспектора трепетания в режиме выбора виджета

введите описание изображения здесь

Я также добавляю свой пользовательский код кнопки. Просто для справки:

 class RoundIconButton extends StatelessWidget {
  RoundIconButton({
    Key key,
    @required this.onPressed,
    @required this.icon,
    this.fillColor = Colors.transparent,
  }) : super(key: key);

  final Icon icon;
  final Function onPressed;
  final Color fillColor;

  @override
  Widget build(BuildContext context) {
    return RawMaterialButton(
      child: icon,
      onPressed: onPressed,
      shape: CircleBorder(),
      fillColor: fillColor,
      constraints: BoxConstraints.tightFor(height: 50.0, width: 50.0),
    );
  }
}
 

Комментарии:

1. оберните тело каркаса виджетом SafeArea

2. обертывание тела scaffold с помощью SafeArea также переместит мои виджеты вниз. Я этого не хочу.

Ответ №1:

Вы должны обернуть свой каркас с помощью SafeArea, например,

введите описание изображения здесь

без макета SafeArea выглядит так:

введите описание изображения здесь

с макетом SafeArea выглядит так:

введите описание изображения здесь

Комментарии:

1. Вы можете ясно видеть, что у меня полноэкранное приложение. Я не могу использовать безопасную зону точка

Ответ №2:

используйте каркас в теле в области безопасности для детей и области безопасности внутри вставьте всю страницу область безопасности имеет выемку и нижнюю панель избегайте

 Scaffold(
  body: SafeArea(
    child: ...........
    ...........
  ),
),