-
Notifications
You must be signed in to change notification settings - Fork 50
Open
Description
When the list of options is short, the footer widget (in this case, the SIGN IN button) does not remain at the bottom of the screen. Instead, it shifts upward along with the content.
How can I make the footer stay fixed at the bottom of the screen, regardless of the list length?
I’ve attached a screenshot for reference.
void main() {
ClassBuilder.registerClasses();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(primarySwatch: Colors.blue),
home: MainWidget(),
);
}
}
class MainWidget extends StatefulWidget {
const MainWidget({super.key});
@override
State<MainWidget> createState() => _MainWidgetState();
}
class _MainWidgetState extends State<MainWidget> with TickerProviderStateMixin {
late KFDrawerController _drawerController;
@override
void initState() {
super.initState();
_drawerController = KFDrawerController(
initialPage: ClassBuilder.fromString('MainPage'),
items: [
KFDrawerItem.initWithPage(
text: Text('MAIN', style: TextStyle(color: Colors.white)),
icon: Icon(Icons.home, color: Colors.white),
page: MainPage(),
),
KFDrawerItem.initWithPage(
text: Text('CALENDAR', style: TextStyle(color: Colors.white)),
icon: Icon(Icons.calendar_today, color: Colors.white),
page: CalendarPage(),
),
KFDrawerItem.initWithPage(
text: Text('SETTINGS', style: TextStyle(color: Colors.white)),
icon: Icon(Icons.settings, color: Colors.white),
page: ClassBuilder.fromString('SettingsPage'),
),
],
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: KFDrawer(
// borderRadius: 0.0,
// shadowBorderRadius: 0.0,
// menuPadding: EdgeInsets.all(0.0),
// scrollable: true,
controller: _drawerController,
animationDuration: Duration(milliseconds: 280),
slideCurve: Curves.easeInOutCubic,
scaleCurve: Curves.easeInOutBack,
header: Align(
alignment: Alignment.centerLeft,
child: Container(
padding: EdgeInsets.symmetric(horizontal: 16.0),
width: MediaQuery.of(context).size.width * 0.6,
child: Image.asset(
'assets/logo.png',
alignment: Alignment.centerLeft,
),
),
),
footer: KFDrawerItem(
text: Text('SIGN IN', style: TextStyle(color: Colors.white)),
icon: Icon(Icons.input, color: Colors.white),
onPressed: () {
Navigator.of(context).push(
CupertinoPageRoute(
fullscreenDialog: true,
builder: (BuildContext context) {
return AuthPage();
},
),
);
},
),
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [
Color.fromRGBO(255, 255, 255, 1.0),
Color.fromRGBO(44, 72, 171, 1.0),
],
tileMode: TileMode.repeated,
),
),
),
);
}
}
Metadata
Metadata
Assignees
Labels
No labels