🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / FLUTTER / Bottom Navigation Bar Kullanımı Resimli Anlatim 2

1-) FLUTTER - Bottom Navigation Bar Kullanımı Resimli Anlatim 2

 

kaynak : https://github.com/hbayazid969/Flutter-Widget-of-the-Week/tree/main/02.BottomNavigation

 

 

 

 

1- anasayfa.dart

 

 

import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:rokethizmet/ekhizmetler/pages.dart';
import 'package:rokethizmet/ekhizmetler/statiksinif.dart';
import 'package:rokethizmet/pages/anasayfa/portfoy/portfoyara_page.dart';

import 'bildirim/mesajpage.dart';
import 'ilanlar/ilanlar_page.dart';
import 'profil/profil_page.dart';
import 'teklif/teklif_page.dart';


class AnaSayfaPage extends StatefulWidget {
  
AnaSayfaPage();

  
static MyStatefulWidgetState myStatefulWidgetState =
      
new MyStatefulWidgetState();

  
@override
  
State<AnaSayfaPage> createState() {
    
myStatefulWidgetState = new MyStatefulWidgetState();
    
return myStatefulWidgetState;
  }
}

class MyStatefulWidgetState extends State<AnaSayfaPage> {

  
void _onItemTapped(int index) {
    setState(() {
      
currentTabIndex = index;
      
currentPage = pages[index];
    });
  }

  
late Widget currentPage;
  
late List<Widget> pages;
  
int currentTabIndex = 0;
  
late TekliflerPage tekliflerPage;
  
late MesajPage mesajPage;
  
late ProfilPage profilPage;
  
late IlanlarPage ilanlarPage;
  
late PortFoyAraPage portFoyAraPage;

  
@override
  
void initState() {
    
super.initState();

    
ilanlarPage = IlanlarPage();
    
tekliflerPage = const TekliflerPage();
    
mesajPage = MesajPage();
    
profilPage = const ProfilPage();
    
portFoyAraPage = const PortFoyAraPage();
    
pages = [
      
ilanlarPage,
      
tekliflerPage,
      
mesajPage,
      
portFoyAraPage,
      
profilPage,
    ];
    
currentPage = ilanlarPage;
  }


  
Color getTextColorAyni(int index){
   
return currentTabIndex == index
        ?
StatikSinif.getTextAmber()
        :
StatikSinif.getTextColorGrey();
  }


  
@override
  
Widget build(BuildContext context) {
    
final Size size = MediaQuery.of(context).size;
    
return Scaffold(
      backgroundColor:
Colors.red,
      extendBody:
true,
      resizeToAvoidBottomInset:
false,
      body:
Stack(
        children: [
          
currentPage,
          
Positioned(
            bottom:
0,
            left:
0,
            child:
Container(
              width:
size.width,
              height:
80,
              child:
Stack(

                children: [
                  
Container(
                    child:
CustomPaint(
                      size:
Size(size.width, 80),
                      painter:
BNBCustomPainter(),
                    ),
                  ),
                  
Center(
                    heightFactor:
0.7,
                    child:
FloatingActionButton(
                        backgroundColor:
StatikSinif.getAppBar(),
                        child:
Icon(
                          
Icons.add,
                          size:
30,
                          color:
StatikSinif.getTextColorWhite(),
                        ),
                        elevation:
0.1,
                        onPressed: () {
                          
Navigator.of(context).pushNamed(Pages.ilanOlustur);
                        }),
                  ),
                  
Container(
                    width:
size.width,
                    height:
80,

                    child:
Container(

                      child:
Row(
                        mainAxisAlignment:
MainAxisAlignment.spaceEvenly,
                        children: [
                          
Container(
                            child:
Column(
                              children: [
                                
IconButton(
                                  icon:
Icon(
                                    
Icons.home,
                                    color: getTextColorAyni(
0),
                                  ),
                                  onPressed: () {
                                    _onItemTapped(
0);
                                  },
                                  splashColor:
Colors.white,
                                ),
                                
Text(
                                  
"İlanlar",
                                  style:
TextStyle(
                                      fontSize:
15, color:getTextColorAyni(0),),
                                ),
                              ],
                            ),
                          ),
                          
Column(
                            children: [
                              
IconButton(
                                icon:
Icon(
                                  
Icons.account_tree_outlined,
                                  color: getTextColorAyni(
1)
                                ),
                                onPressed: () {

                                  _onItemTapped(
1);
                                },
                                splashColor:
Colors.white,
                              ),
                              
Text(
                                
"Teklif",
                                style:
TextStyle(
                                    fontSize:
15, color:getTextColorAyni(1),),
                              ),
                            ],
                          ),
                          
Container(
                            width:
size.width * 0.30,
                          ),
                          
Column(
                            children: [
                              
IconButton(
                                icon:
Icon(
                                  
Icons.message,
                                  color: getTextColorAyni(
2)
                                ),
                                onPressed: () {
                                  _onItemTapped(
2);
                                },
                                splashColor:
Colors.white,
                              ),
                              
Text(
                                
"Mesaj",
                                style:
TextStyle(
                                    fontSize:
15, color: getTextColorAyni(2),),
                              ),
                            ],
                          ),
                          
Column(
                            children: [
                              
IconButton(
                                icon:
Icon(
                                  
Icons.person_search,
                                  color: getTextColorAyni(
3)
                                ),
                                onPressed: () {

                                  _onItemTapped(
3);
                                },
                                splashColor:
Colors.white,
                              ),
                              
Text(
                                
"Portföy",
                                style:
TextStyle(
                                    fontSize:
15, color: getTextColorAyni(3),),
                              ),
                            ],
                          ),
                          
Column(
                            children: [
                              
IconButton(
                                icon:
Icon(
                                  
Icons.person,
                                  color: getTextColorAyni(
4)
                                ),
                                onPressed: () {
                                  _onItemTapped(
4);
                                },
                                splashColor:
Colors.white,
                              ),
                              
Text(
                                
"Profilim",
                                style:
TextStyle(
                                    fontSize:
15, color: getTextColorAyni(4),),
                              ),
                            ],
                          ),
                        ],
                      ),
                    ),
                  )
                ],
              ),
            ),
          )
        ],
      ),
    );
  }

}

class BNBCustomPainter extends CustomPainter {
  
@override
  
void paint(Canvas canvas, Size size) {
    
Paint paint = new Paint()
      ..
color = StatikSinif.getBackColor()
      ..
style = PaintingStyle.fill;

    
Path path = Path();
    
path.moveTo(0, 20); // Start
    
path.quadraticBezierTo(size.width * 0.20, 0, size.width * 0.35, 0);
    
path.quadraticBezierTo(size.width * 0.40, 0, size.width * 0.40, 20);
    
path.arcToPoint(Offset(size.width * 0.60, 20),
        radius:
Radius.circular(20.0), clockwise: false);
    
path.quadraticBezierTo(size.width * 0.60, 0, size.width * 0.65, 0);
    
path.quadraticBezierTo(size.width * 0.80, 0, size.width, 20);
    
path.lineTo(size.width, size.height);
    
path.lineTo(0, size.height);
    
path.lineTo(0, 20);
    canvas.drawShadow(
path, Colors.black, 5, true);
    canvas.drawPath(
path, paint);
  }

  
@override
  
bool shouldRepaint(CustomPainter oldDelegate) {
    
return false;
  }
}


 

 

 

 2023 Ocak 07 Cumartesi
 587