如何在Flutter应用程序中删除导航器上的黑色边框

kuarbcqp  于 2023-08-07  发布在  Flutter
关注(0)|答案(3)|浏览(288)

我目前正在使用Flutter开发,使用VS Code作为编译器,Pixel 6作为模拟器,使用Android SDK 34。我遇到了一个问题,我的应用程序的导航器(底部的手势栏)显示黑色边框。下面是我使用的代码,来自Flutter官方文档的“导航栏”部分:

flutter create --sample=material.NavigationBar.1 mysample

个字符

**预期结果:**我正在尝试在导航栏上实现这个外观,导航栏下没有多余的黑板:Expected Result
**实际结果:**但应用程序当前在导航栏上显示黑色边框,如下所示:Actual Result
我试过:

1.来自Flutter官方文档的其他示例代码。
1.其他模拟器如Pixel 5和可调整大小的模拟器。
1.其他SDK,如Android 13或Android 12

但问题依然存在

axkjgtzd

axkjgtzd1#

您需要更新您的setSystemUIOverlayStyle,请查看Link
你可以看到那里的例子。
更多信息在这里:
Source 1Source 2

tp5buhyn

tp5buhyn2#

使用systemChrome函数
只需将此代码放入initState()中

SystemChrome.setSystemUIOverlayStyle(
      const SystemUiOverlayStyle(
          statusBarColor: Colors.transparent,
          systemNavigationBarColor: Colors.white
      ),
);

字符串

jq6vz3qz

jq6vz3qz3#

下面是一个设置透明导航栏和系统UI覆盖的代码:

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // Set the system UI overlay to transparent navigation bar.
    SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
      systemNavigationBarColor: Colors.transparent,
      statusBarIconBrightness: Brightness.light,
      statusBarBrightness: Brightness.dark,
    ));

    return MaterialApp(
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('My App'),
      ),
      bottomNavigationBar: BottomNavigationBar(
        items: const <BottomNavigationBarItem>[
          BottomNavigationBarItem(
            icon: Icon(Icons.home),
            label: 'Home',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.business),
            label: 'Business',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.school),
            label: 'School',
          ),
        ],
      ),
      body: Center(
        child: Text('Hello, World!'),
      ),
    );
  }
}

字符串
要实现透明的导航栏,可以尝试使用SystemUiOverlayStyle.light作为状态栏图标和文本颜色。此外,您可以将导航栏颜色设置为Colors.transparent,并将其亮度设置为Brightness.dark

相关问题