Flutter 如何在没有填充的情况下在状态栏后面绘制列表视图?
以下是我想要实现的目标: 这就是我现在拥有的:Flutter 如何在没有填充的情况下在状态栏后面绘制列表视图?,flutter,dart,Flutter,Dart,以下是我想要实现的目标: 这就是我现在拥有的: @override Widget build(BuildContext context) { return Scaffold( key: _scaffoldKey, body: ListView( children: [ Image.asset( 'assets/images/videosbg.png', fit: BoxF
@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不适合我
如何将脚手架主体放置在状态栏后面,而不是下方?是否需要以某种方式删除状态栏的上部填充?在运行MaterialApp之前,我尝试将带有透明颜色的SystemChrome放入main()函数中
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(statusBarColor: Colors.transparent),
);
我能复制你想要的东西
对于Android是
SystemChrome
用于设置透明条。该类提供了一个setSystemMioverLayStyle
方法,您可以这样使用它:
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main(){
WidgetsFlutterBinding.ensureInitialized();
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
statusBarColor: Colors.transparent,
));
runApp(MyApp());
}
ListView具有padding属性,请将其设置为
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,
),
...
],
),
);
}
仅供参考@Darkhan:您能告诉我这个解决方案对您是否有效吗?我已尝试在main()中将颜色设置为透明,但没有任何改变。似乎问题不在于颜色,而在于填充物。可能我的小部件结构错误,或者我应该在Scaffold中更改某些内容?Scaffold是为您的屏幕设计的,它不会对您有任何帮助。我已尝试按照下面的一些答案将main()中的颜色设置为透明,但没有任何更改。上面的填充物还在那里。可能我的小部件结构错误,或者我应该在Scaffold中更改一些内容?我已经尝试在main()中将颜色设置为透明,但没有任何更改。上面的填充物还在那里。也许我的小部件结构错了,或者我应该在Scaffold中更改一些内容?