flutter沉浸式状态栏

方法1:修改MainActivity

在MainActivity.kt或MainActivity.java,判断一下版本号然后将状态栏颜色修改设置成透明,因为他本身是黑色半透明:

Kotlin:

class MainActivity: FlutterActivity() {

    override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
        GeneratedPluginRegistrant.registerWith(flutterEngine);
    }

    override  fun onCreate(saveInstanceState:Bundle?){
        super.onCreate(saveInstanceState);
        if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP){
            window.statusBarColor=0
        }
    }
}

Java:

public class MainActivity extends FlutterActivity {
  @Override
  public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
    GeneratedPluginRegistrant.registerWith(flutterEngine);
  }

  // 设置状态栏沉浸式透明(修改flutter状态栏黑色半透明为全透明)
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
      getWindow().setStatusBarColor(0);
    }
  }
}

方法2:通过setSystemUIOverlayStyle方法设置透明状态栏

修改main.dart文件在main()方法中添加如下代码

if (Platform.isAndroid) {
    // 设置android状态栏为透明的沉浸,在渲染之前MaterialApp组件会覆盖掉这个值。
    SystemUiOverlayStyle systemUiOverlayStyle = const SystemUiOverlayStyle(
      statusBarColor: Colors.transparent, //状态栏的颜色根据需要更改
    );
    SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
}

方法3:通过systemOverlayStyle属性设置透明状态栏

Scaffold(
  appBar: AppBar(
  	title:Text(widget.title),
    systemOverlayStyle: SystemUiOverlayStyle(statusBarColor: Colors.transparent),
  ),
)

方法4:通过修改appbar样式实现

实现方式查看Flutter修改AppBar的主题

效果如下:

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值