Skip to content

Instantly share code, notes, and snippets.

@SalcidoJesus
Last active April 29, 2025 16:15
Show Gist options
  • Save SalcidoJesus/e2025e52f308838d385c3540d0b271dc to your computer and use it in GitHub Desktop.
Save SalcidoJesus/e2025e52f308838d385c3540d0b271dc to your computer and use it in GitHub Desktop.
Custom Drawer para Flutter
// import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
class CustomDrawer extends StatelessWidget {
const CustomDrawer({super.key});
@override
Widget build(BuildContext context) {
// log(Get.currentRoute, name: 'CustomDrawer');
return Drawer(
child: Column(
children: [
Container(
padding: EdgeInsets.only(top: 50, bottom: 20),
height: 160,
// color: Colors.deepPurple,
child: Center(
child: CircleAvatar(
backgroundImage: AssetImage('assets/yo.jpg'),
radius: 50,
),
),
),
Divider(),
ListTile(
leading: Icon(Icons.home),
title: Text('Inicio'),
selectedTileColor: Colors.deepPurple.shade400,
selectedColor: Colors.white,
selected: Get.currentRoute == '/',
onTap: () {
Navigator.pop(context);
Get.toNamed('/');
},
),
ListTile(
leading: Icon(Icons.message),
title: Text('Mensajes'),
selectedTileColor: Colors.deepPurple.shade400,
selectedColor: Colors.white,
selected: Get.currentRoute == '/mensajes',
onTap: () {
Navigator.pop(context);
Get.toNamed('/mensajes');
},
),
ListTile(
leading: Icon(Icons.person),
title: Text('Perfil'),
selectedTileColor: Colors.deepPurple.shade400,
selectedColor: Colors.white,
selected: Get.currentRoute == '/perfil',
onTap: () {
Navigator.pop(context);
Get.toNamed('/perfil');
},
),
ListTile(
leading: Icon(Icons.list),
title: Text('Menú'),
selectedTileColor: Colors.deepPurple.shade400,
selectedColor: Colors.white,
selected: Get.currentRoute == '/menu',
onTap: () {
Navigator.pop(context);
Get.toNamed('/menu');
},
),
],
),
);
}
}
import 'package:flutter/material.dart';
// import 'package:flutter_2025/components/custom_drawer.dart';
class Mensajes extends StatelessWidget {
const Mensajes({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.deepPurple,
iconTheme: IconThemeData(color: Colors.white),
title: Text('Mensajes', style: TextStyle(color: Colors.white)),
),
body: Center(child: Text('mensajes')),
// drawer: CustomDrawer(),
);
}
}
import 'package:flutter/material.dart';
class MenuInferior extends StatefulWidget {
const MenuInferior({super.key});
@override
// ignore: library_private_types_in_public_api
_MenuInferiorState createState() => _MenuInferiorState();
}
class _MenuInferiorState extends State<MenuInferior> {
int _currentIndex = 0;
final List<Widget> _screens = [
HomeScreen(),
ProfileScreen(),
SettingsScreen(),
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.deepPurple,
iconTheme: IconThemeData(
color: Colors.white
),
title: Text('Menú inferior', style: TextStyle(color: Colors.white)),
),
body: _screens[_currentIndex],
bottomNavigationBar: BottomNavigationBar(
currentIndex: _currentIndex,
onTap: (index) {
setState(() {
_currentIndex = index;
});
},
items: [
BottomNavigationBarItem(
icon: Icon(Icons.home),
label: 'Home',
),
BottomNavigationBarItem(
icon: Icon(Icons.person),
label: 'Profile',
),
BottomNavigationBarItem(
icon: Icon(Icons.settings),
label: 'Settings',
),
],
),
);
}
}
class HomeScreen extends StatelessWidget {
const HomeScreen({super.key});
@override
Widget build(BuildContext context) {
return Center(
child: Text('Home Screen'),
);
}
}
class ProfileScreen extends StatelessWidget {
const ProfileScreen({super.key});
@override
Widget build(BuildContext context) {
return Center(
child: Text('Profile Screen'),
);
}
}
class SettingsScreen extends StatelessWidget {
const SettingsScreen({super.key});
@override
Widget build(BuildContext context) {
return Center(
child: Text('Settings Screen'),
);
}
}
import 'package:flutter/material.dart';
// import 'package:flutter_2025/components/custom_drawer.dart';
class Perfil extends StatelessWidget {
const Perfil({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.deepPurple,
iconTheme: IconThemeData(color: Colors.white),
title: Text('Perfil', style: TextStyle(color: Colors.white)),
),
body: Center(child: Text('Perfil')),
// drawer: CustomDrawer(),
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment