Leb*_*osi 4 dart android-studio flutter
我已经构建了一个具有透明导航抽屉的本地Android应用程序。我被要求使用Flutter构建相同的应用程序,而现在我想要实现一个透明的导航抽屉。因为一直为此而努力,如何使Flutter应用程序的导航抽屉透明?我已经尝试过
drawer: Drawer(
child: Container(
color: Colors.transparent,)),
Run Code Online (Sandbox Code Playgroud)
导航抽屉仅保持白色。我一直在寻找解决方案,但找不到。任何帮助,将不胜感激。我已将本机应用程序的图像与透明抽屉相连,将Flutter版本的图像与白色导航抽屉相连。


小智 7
我认为有一种更好的方法,可以不弄乱应用程序中的所有画布。由于您要专门用于抽屉,因此请尝试这种方法。
Scaffold(
drawer: Theme(
data: Theme.of(context).copyWith(
// Set the transparency here
canvasColor: Colors.transparent, //or any other color you want. e.g Colors.blue.withOpacity(0.5)
),
child: Drawer(
// All other codes goes here.
)
)
);
Run Code Online (Sandbox Code Playgroud)
像你现在一样使用透明颜色,但也在抽屉小部件中使用一个堆栈,并在其中使第一个小部件成为背景过滤器,你需要导入 dart:ui。这是一个例子
//import this library to use the gaussian blur background
import 'dart:ui';
Scaffold(
appBar: AppBar(
title: Text('Title'),
),
drawer: Theme(
data: Theme.of(context).copyWith(canvasColor: Colors.transparent),
child: sideNav()),
body: Text('Hello Body'),
),
Drawer sideNav(){
return Drawer(
child: Stack(
children: <Widget> [
//first child be the blur background
BackdropFilter(
filter: ImageFilter.blur(sigmaX: 5.0, sigmaY: 5.0), //this is dependent on the import statment above
child: Container(
decoration: BoxDecoration(color: Color.grey.withOpacity(0.5))
)
),
ListView(
padding: EdgeInsets.zero,
children: <Widget>[
DrawerHeader(
child: Text('Hello Drawer Title')
),
ListTitle(
leading: Icon(Icons.dashboard, color: Colors.white)
title: "Dashboard"
onTap: (){
}
)
]
)
]
)
);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1724 次 |
| 最近记录: |