اذهب إلى المحتوى

السؤال

نشر

السلام عليكم عندي مشكلتين مو عارف ايش الحل 

الاولى :  اني لما احاول احط backGroundColor ما بيشتغل معي في bottomNavigatorBar

الثانيه : اني لما احاول اكبس على اي item داخل ال  items ما بيتغير ال currentindex او بمعنى واضح لا ينتقل الى العنصر الذي بجانبه (موضح في الصوره) 

وشكرا لكم......

 اللون الاحمر المشكله الاولى 

اللون الاخضر المشكله الثانيه

 

سششسشش.png

Recommended Posts

  • 0
نشر
بتاريخ الآن قال بلال زيادة:

هل يمكنك إرفاق كامل كود الصفحة لو سمحت ؟ 

هذا هو الكود 

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Welcome to Flutter',
      home: NewTest()
    );
  }
}

class NewTest extends StatefulWidget {
  const NewTest({Key? key}) : super(key: key);

  @override
  State<NewTest> createState() => _NewTestState();
}

class _NewTestState extends State<NewTest> {

  @override
  Widget build(BuildContext context) {
    int index_ = 0  ;
    return Scaffold(
      appBar: AppBar(),
      drawer: Drawer() ,
      body: null ,
      bottomNavigationBar: BottomNavigationBar(
        items: [
          BottomNavigationBarItem(
            icon: Icon(Icons.add_chart_sharp),
            label: "one" ,
          )
          ,
          BottomNavigationBarItem(
            icon: Icon(Icons.add_chart_sharp),
            label: "one" ,
          )
          ,
          BottomNavigationBarItem(
            icon: Icon(Icons.add_chart_sharp),
            label: "one" ,
          )
          ,
          BottomNavigationBarItem(
            icon: Icon(Icons.add_chart_sharp),
            label: "one" ,
          )
          ,
          BottomNavigationBarItem(
            icon: Icon(Icons.add_chart_sharp),
            label: "one" ,
          )
        ],

        // styles
        unselectedItemColor: Colors.black ,
        selectedItemColor: Colors.blue ,
        showUnselectedLabels: true ,
        showSelectedLabels: true ,
        backgroundColor: Colors.red, // ---> not working why??

        // onTap doesn't working
        onTap: (val){
          setState(() {
            index_ = val ;
          });
        },
        currentIndex: index_,
      ),
    );
  }
}

 

  • 0
نشر

في دالة 

BottomNavigationBarItem

يمكنك وضع لون الخلفية للون الأحمر بهذا الشكل 

BottomNavigationBarItem(
            backgroundColor: Colors.red,
            icon: Icon(Icons.add_chart_sharp),
            label: "one",
          ),

بخصوص المشكلة الثانية و هي عدم الأنتقال إلى الصفحات عند الضغط على الأيقونات أسفل ، لأنه لم تقوم بوضع صفحات للتنقل عليها فيمكنك إنشاء List بهذا الشكل 

final pages = [
    const Page1(),
    const Page2(),
    const Page3(),
    const Page4(),
  ];

ووضع في body هذه القائمة بهذا الشكل 

body: pages[pageIndex],

و الصفحات ممكن أن تكون 

class Page1 extends StatelessWidget {
  const Page1({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      color: const Color(0xffC4DFCB),
      child: Center(
        child: Text(
          "Page Number 1",
          style: TextStyle(
            color: Colors.green[900],
            fontSize: 45,
            fontWeight: FontWeight.w500,
          ),
        ),
      ),
    );
  }
}

class Page2 extends StatelessWidget {
  const Page2({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      color: const Color(0xffC4DFCB),
      child: Center(
        child: Text(
          "Page Number 2",
          style: TextStyle(
            color: Colors.green[900],
            fontSize: 45,
            fontWeight: FontWeight.w500,
          ),
        ),
      ),
    );
  }
}

class Page3 extends StatelessWidget {
  const Page3({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      color: const Color(0xffC4DFCB),
      child: Center(
        child: Text(
          "Page Number 3",
          style: TextStyle(
            color: Colors.green[900],
            fontSize: 45,
            fontWeight: FontWeight.w500,
          ),
        ),
      ),
    );
  }
}

class Page4 extends StatelessWidget {
  const Page4({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      color: const Color(0xffC4DFCB),
      child: Center(
        child: Text(
          "Page Number 4",
          style: TextStyle(
            color: Colors.green[900],
            fontSize: 45,
            fontWeight: FontWeight.w500,
          ),
        ),
      ),
    );
  }
}

فيكون كامل الكود 

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
        debugShowCheckedModeBanner: false,
        title: 'Welcome to Flutter',
        home: NewTest());
  }
}

class NewTest extends StatefulWidget {
  const NewTest({Key? key}) : super(key: key);

  @override
  State<NewTest> createState() => _NewTestState();
}

class _NewTestState extends State<NewTest> {
  @override
  Widget build(BuildContext context) {
    int _selectedIndex = 0;
    final pages = [
      const Page1(),
      const Page2(),
      const Page3(),
      const Page4(),
      const Page4(),
    ];

    void _onItemTapped(int index) {
      setState(() {
        _selectedIndex = index;
      });
    }

    return Scaffold(
      appBar: AppBar(),
      drawer: const Drawer(),
      body: pages.elementAt(_selectedIndex),
      bottomNavigationBar: BottomNavigationBar(
        items: const [
          BottomNavigationBarItem(
            backgroundColor: Colors.red,
            icon: Icon(Icons.add_chart_sharp),
            label: "one",
          ),
          BottomNavigationBarItem(
            backgroundColor: Colors.red,
            icon: Icon(Icons.add_chart_sharp),
            label: "two",
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.add_chart_sharp),
            label: "three",
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.add_chart_sharp),
            label: "foure",
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.add_chart_sharp),
            label: "five",
          )
        ],

        // styles
        unselectedItemColor: Colors.black,
        selectedItemColor: Colors.blue,
        showUnselectedLabels: true,
        showSelectedLabels: true,

        // onTap doesn't working
        onTap: _onItemTapped,
        currentIndex: _selectedIndex,
      ),
    );
  }
}

class Page1 extends StatelessWidget {
  const Page1({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      color: const Color(0xffC4DFCB),
      child: Center(
        child: Text(
          "Page Number 1",
          style: TextStyle(
            color: Colors.green[900],
            fontSize: 45,
            fontWeight: FontWeight.w500,
          ),
        ),
      ),
    );
  }
}

class Page2 extends StatelessWidget {
  const Page2({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      color: const Color(0xffC4DFCB),
      child: Center(
        child: Text(
          "Page Number 2",
          style: TextStyle(
            color: Colors.green[900],
            fontSize: 45,
            fontWeight: FontWeight.w500,
          ),
        ),
      ),
    );
  }
}

class Page3 extends StatelessWidget {
  const Page3({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      color: const Color(0xffC4DFCB),
      child: Center(
        child: Text(
          "Page Number 3",
          style: TextStyle(
            color: Colors.green[900],
            fontSize: 45,
            fontWeight: FontWeight.w500,
          ),
        ),
      ),
    );
  }
}

class Page4 extends StatelessWidget {
  const Page4({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      color: const Color(0xffC4DFCB),
      child: Center(
        child: Text(
          "Page Number 4",
          style: TextStyle(
            color: Colors.green[900],
            fontSize: 45,
            fontWeight: FontWeight.w500,
          ),
        ),
      ),
    );
  }
}

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...