#flutter #dart
#flutter #dart
Вопрос:
Вот чего я хочу добиться:
Это то, что у меня есть сейчас:
@override
Widget build(BuildContext context) {
return Scaffold(
key: _scaffoldKey,
body: ListView(
children: [
Image.asset(
'assets/images/videosbg.png',
fit: BoxFit.cover,
height: 300,
width: double.infinity,
),
...
],
),
);
}
Я не хочу удалять строку состояния или изменять ее цвет, поэтому systemChrome у меня не работал.
Как разместить тело каркаса за строкой состояния, а не ниже? Нужно ли мне как-то удалить верхнюю часть строки состояния?
Комментарии:
1. Я попытался установить цвет на прозрачный в main (), как предполагают некоторые ответы ниже, но ничего не изменилось. Верхнее заполнение все еще там. Может быть, моя структура виджета неверна или я должен что-то изменить в Scaffold?
Ответ №1:
ListView имеет свойство заполнения, установите для него значение EdgeInsets.zero
@override
Widget build(BuildContext context) {
return Scaffold(
key: _scaffoldKey,
body: ListView(
padding: EdgeInsets.zero,
children: [
Image.asset(
'assets/images/videosbg.png',
fit: BoxFit.cover,
height: 300,
width: double.infinity,
),
...
],
),
);
}
К вашему СВЕДЕНИЮ https://github.com/flutter/flutter/issues/14842
Ответ №2:
Я попытался поместить systemChrome с прозрачным цветом в функцию main () перед запуском MaterialApp
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(statusBarColor: Colors.transparent),
);
Комментарии:
1. Я попытался установить цвет на прозрачный в main(), но ничего не изменилось. Верхнее заполнение все еще там. Может быть, моя структура виджета неверна или я должен что-то изменить в Scaffold?
Ответ №3:
Для Android ДА
SystemChrome
используется для настройки прозрачности панели. Этот класс предоставляет setSystemUIOverlayStyle
метод, и вы можете использовать его следующим образом:
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main(){
WidgetsFlutterBinding.ensureInitialized();
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
statusBarColor: Colors.transparent,
));
runApp(MyApp());
}
Комментарии:
1. @Darkhan: Не могли бы вы сообщить мне, сработало ли это решение для вас или нет
2. Я попытался установить цвет на прозрачный в main(), но ничего не изменилось. Кажется, проблема не в цвете, а в заполнении. Может быть, моя структура виджета неверна или я должен что-то изменить в Scaffold?
3. Каркас предназначен для вашего экрана, он вам не поможет.