Сделать строку состояния флаттера Solid - PullRequest
0 голосов
/ 09 июля 2020

Мое приложение не использует AppBar, и при прокрутке содержимое перекрывается со строкой состояния. Я пробовал использовать AnnotatedRegion<SystemUiOverlayStyle>, но это ничего не меняет.

Перекрытие

Лучше всего использовать SafeArea, но строка состояния стала серой *. 1008 *

Серая безопасная область

Есть ли способ сохранить автоматический c цвет строки состояния, не перекрывая его содержимое?

Дополнительно Примечание: Flutter 1.17.5

My Tree

SafeArea
|_ SingleChildScrollView
   |_ Column
      |_ Container
      |_ Container
      |_ Container

EDIT: я только что понял, что цвет c (строка состояния соответствует цвету первого контейнера) был потому, что он был прозрачным. Я думал сделать его solid во время выполнения и читать его из первого цветного виджета.

Ответы [ 2 ]

0 голосов
/ 09 июля 2020
import 'package:flutter/services.dart';

@override
Widget build(BuildContext context){
  return AnnotatedRegion<SystemUiOverlayStyle>(
    value: SystemUiOverlayStyle(
      statusBarColor: Colors.blue, //or the color you prefer
    ),
    child: SafeArea(child: Scaffold(...)),
  );
}
0 голосов
/ 09 июля 2020

Вам необходимо обернуть свой SafeArea виджет Container виджетом, чтобы изменить цвет SafeArea виджета

КОД ОБРАЗЦА

Scaffold(
  backgroundColor: Colors.white,
  body: Container(
    color: Colors.red, /* Set your status bar color here */
    child: SafeArea(
       child: Container(
            /* Add your Widget here */
    )),
  ),
); 

Другой способ Вы можете использовать AppBar

@override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        elevation: 0.0,
        backgroundColor: Colors.red,
      ),
      body: Container(
        child: //widget
      )
    );
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...