'Container margin not transparent
In my flutter project i have an AnimatedContainer which is my BottomAppBar. If i give it a margin to space it from the screen egdes the margin is not transparent so it is visible when something is behind it (picture). I could now separate the container from the screen edges using e.g. a SizedBox but i dont feel like that is good practice.
My question is how i can make that margin transparent so that the Container is still spaced from the edge but that there is also nothing covering the text.
the margin covers the text as you can see on this picture
Code:
main.dart:
void main() {
runApp(MultiProvider(
providers: [ChangeNotifierProvider(create: (context) => ThemeProvider())],
child: const MainWidget()));
}
main_widget.dart:
class MainWidget extends StatelessWidget {
const MainWidget({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
builder: ((context, child) {
return Scaffold(
bottomNavigationBar: FloatingBottomAppBar(),
body: child,
);
}),
debugShowCheckedModeBanner: false,
title: "Test App",
themeMode: Provider.of<ThemeProvider>(context).themeMode,
theme: Themes.lightTheme,
darkTheme: Themes.darkTheme,
home: const GroupScreen(),
);
}
}
floating_ab.dart:
class FloatingBottomAppBar extends StatelessWidget {
const FloatingBottomAppBar({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) => AnimatedContainer(
duration: const Duration(seconds: 1),
margin: const EdgeInsets.symmetric(vertical: 12, horizontal: 16),
child: Container(
height: 60,
decoration: BoxDecoration(
boxShadow: const [
BoxShadow(color: Colors.grey),
],
color: Theme.of(context).primaryColor,
borderRadius: BorderRadius.circular(15),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: const [
Icon(Icons.home_rounded),
Icon(Icons.search),
Icon(Icons.camera_alt),
Icon(Icons.notifications),
Icon(Icons.person)
],
),
),
);
}
group_screen.dart:
class GroupScreen extends StatelessWidget {
const GroupScreen({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text(
"Groups",
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20),
),
elevation: 0,
),
body: Column(
children: [
Expanded(
child: ListView.builder(
itemBuilder: ((context, index) {
return Center(
child: Text("$index",
style: const TextStyle(
color: Colors.white, fontSize: 30)));
}),
itemCount: 50),
),
]),
);
}
}
EDIT:
setting extendBody: true in the scaffold should fix it
Solution 1:[1]
Set extendBody: true in your Scaffold
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Dulaj Nadawa |

