У меня здесь свой собственный виджет. Я использую его как свою панель приложений. Я хочу, чтобы он был градиентным с непрозрачностью, но он не работает. На самом деле я подумал, что когда я помещу BoxDecoration в этот первый контейнер, он будет работать. Я довольно новичок, чтобы трепетать. Любой совет? Первая часть - это мой виджет. Второй - мой домашний класс, где я установил его в качестве панели приложений.
Widget customAppBar(double width) {
return PreferredSize(
preferredSize: Size.fromHeight(124),
child: Container(
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
Color(0xff101010).withOpacity(1),
Color(0xff101010).withOpacity(0.82),
Color(0xff101010).withOpacity(0)
],
),
),
width: width,
// height: 124,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Container(
margin: EdgeInsets.only(left: 30, top: 44, bottom: 13),
width: 134,
height: 39,
child: FlatButton(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(5),
),
color: Color(0xffff163c),
child: Text(
"LOCKDOWN",
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.white,
fontSize: 18,
fontFamily: 'Assistant',
),
),
onPressed: () {},
),
),
Container(
margin: EdgeInsets.only(top: 20, right: 12, left: 48),
height: 76,
width: 152,
child: Image.asset(
'assets/images/xy.png',
fit: BoxFit.none,
),
)
],
),
),
); }
class Home extends StatefulWidget {
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
@override
Widget build(BuildContext context) {
MediaQueryData queryData = MediaQuery.of(context);
return Scaffold(
// resizeToAvoidBottomInset: false,
backgroundColor: Color(0xff101010),
// extendBodyBehindAppBar: true,
appBar: customAppBar(queryData.size.width),
body: SingleChildScrollView(
child: Body(),
),
);
}}