简体   繁体   English

flutter 按钮无法导航

[英]flutter button can't navigate

im new to flutter. and i have an error in my app.我是 flutter 的新用户。我的应用程序出现错误。 so after i added a button navigator in my "HomePage" when i press one of the button to navigate to "ReminderHomePage" it works, but when i try to press another button to navigate to "AddReminderPage" this error occur所以在我的“主页”中添加了一个按钮导航器后,当我按下其中一个按钮导航到“ReminderHomePage”时,它起作用了,但是当我尝试按下另一个按钮导航到“AddReminderPage”时,会发生此错误

══╡ EXCEPTION CAUGHT BY FLUTTER FRAMEWORK ╞═════════════════════════════════════════════════════════
The following message was thrown:
Could not navigate to initial route.
The requested route name was: "/AddReminderPage"
There was no corresponding route in the app, and therefore the initial route specified will be
ignored and "/" will be used instead.
════════════════════════════════════════════════════════════════════════════════════════════════════
Error: Assertion failed:
file:///D:/Software/Flutter/flutter/packages/flutter/lib/src/painting/text_painter.dart:975:12
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart   
266:49      throw_
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart   
29:3        assertFailed
packages/flutter/src/painting/text_painter.dart 975:13
getPositionForOffset
packages/flutter/src/rendering/paragraph.dart 581:52
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/proxy_box.dart 183:63
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/proxy_box.dart 183:63
hitTest
packages/flutter/src/rendering/box.dart 2879:23
<fn>
packages/flutter/src/rendering/box.dart 805:31
addWithPaintOffset
packages/flutter/src/rendering/box.dart 2874:32
defaultHitTestChildren
packages/flutter/src/rendering/flex.dart 1082:12
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/shifted_box.dart 97:18
<fn>
packages/flutter/src/rendering/box.dart 805:31
addWithPaintOffset
packages/flutter/src/rendering/shifted_box.dart 92:20
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/box.dart 2879:23
<fn>
packages/flutter/src/rendering/box.dart 805:31
addWithPaintOffset
packages/flutter/src/rendering/box.dart 2874:32
defaultHitTestChildren
packages/flutter/src/rendering/flex.dart 1082:12
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/box.dart 2879:23
<fn>
packages/flutter/src/rendering/box.dart 805:31
addWithPaintOffset
packages/flutter/src/rendering/box.dart 2874:32
defaultHitTestChildren
packages/flutter/src/rendering/custom_layout.dart 420:12
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 2030:18
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 3618:31
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/proxy_box.dart 2590:22
<fn>
packages/flutter/src/rendering/box.dart 844:31
addWithRawTransform
packages/flutter/src/rendering/box.dart 769:12
addWithPaintTransform
packages/flutter/src/rendering/proxy_box.dart 2586:18
hitTestChildren
packages/flutter/src/rendering/proxy_box.dart 2580:12
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/proxy_box.dart 2590:22
<fn>
packages/flutter/src/rendering/box.dart 844:31
addWithRawTransform
packages/flutter/src/rendering/box.dart 769:12
addWithPaintTransform
packages/flutter/src/rendering/proxy_box.dart 2586:18
hitTestChildren
packages/flutter/src/rendering/proxy_box.dart 2580:12
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/proxy_box.dart 183:63
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/proxy_box.dart 2590:22
<fn>
packages/flutter/src/rendering/box.dart 844:31
addWithRawTransform
packages/flutter/src/rendering/box.dart 769:12
addWithPaintTransform
packages/flutter/src/rendering/proxy_box.dart 2586:18
hitTestChildren
packages/flutter/src/rendering/proxy_box.dart 2580:12
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/proxy_box.dart 2590:22
<fn>
packages/flutter/src/rendering/box.dart 844:31
addWithRawTransform
packages/flutter/src/rendering/box.dart 769:12
addWithPaintTransform
packages/flutter/src/rendering/proxy_box.dart 2586:18
hitTestChildren
packages/flutter/src/rendering/proxy_box.dart 2580:12
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/proxy_box.dart 183:63
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/widgets/routes.dart 2217:63
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 3743:31
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/widgets/overlay.dart 826:23
<fn>
packages/flutter/src/rendering/box.dart 805:31
addWithPaintOffset
packages/flutter/src/widgets/overlay.dart 821:32
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 3854:17
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/proxy_box.dart 183:63
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/proxy_box.dart 135:19
hitTestChildren
packages/flutter/src/rendering/box.dart 2511:11
hitTest
packages/flutter/src/rendering/view.dart 186:7
hitTest
packages/flutter/src/rendering/binding.dart 547:16
hitTest
packages/flutter/src/gestures/binding.dart 365:7
[_handlePointerEventImmediately]
packages/flutter/src/gestures/binding.dart 357:5
handlePointerEvent
packages/flutter/src/gestures/binding.dart 314:7
[_flushPointerEventQueue]
packages/flutter/src/gestures/binding.dart 295:7
[_handlePointerDataPacket]
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine/platform_dispatcher.dart 1183:13     
invoke1
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine/platform_dispatcher.dart 244:5       
invokeOnPointerDataPacket
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine/pointer_binding.dart 147:39
[_onPointerData]
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine/pointer_binding.dart 631:16
<fn>
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine/pointer_binding.dart 594:14
<fn>
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine/pointer_binding.dart 288:16
loggedHandler
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine/pointer_binding.dart 179:80
<fn>
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 334:14  _checkAndCall
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 339:39  dcall

when i run the app with chrome, the page link looks like it change to /AddReminderPage.当我使用 chrome 运行该应用程序时,页面链接看起来像是更改为 /AddReminderPage。 but nothing in the app seems to navigate.但应用程序中似乎没有任何内容可以导航。 any help would mean so much to me.任何帮助对我来说意义重大。

here is my bottomnavigation code这是我的底部导航代码

import 'package:flutter/material.dart';
import 'package:medreminder/home_page.dart';
import 'package:medreminder/profile_page.dart';
import 'package:medreminder/settings_page.dart';
import 'package:medreminder/Reminder/ui/home_reminder.dart';
import 'package:medreminder/Reminder/ui/widgets/add_remindbar.dart';
import 'package:medreminder/Reminder/ui/widgets/add_remindbar.dart';

void main() => runApp(MyApp());

/// This Widget is the main application widget.
class MyApp extends StatelessWidget {
  static const String _title = 'Flutter Code Sample';

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: _title,
      home: BotNav(),
    );
  }
}

class BotNav extends StatefulWidget {
  BotNav();

  @override
  _BotNavState createState() => _BotNavState();
}

class _BotNavState extends State<BotNav> {
  int _selectedIndex = 0;
  static const List<Widget> navigationItems = <Widget>[
    HomePage(),
    SettingPage(),
    ProfilePage(),
  ];

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: navigationItems.elementAt(_selectedIndex),
      ),
      bottomNavigationBar: BottomNavigationBar(
        items: const <BottomNavigationBarItem>[
          BottomNavigationBarItem(
            icon: Icon(Icons.home),
            label: 'Home',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.settings),
            label: 'Settings',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.people),
            label: 'Profile',
          ),
        ],
        currentIndex: _selectedIndex,
        selectedItemColor: Colors.blue,
        onTap: _onItemTapped,
      ),
    );
  }
}

my "HomePage" code我的“主页”代码

import 'package:flutter/material.dart';
import 'package:get/get_core/src/get_main.dart';
import 'package:get/get_navigation/get_navigation.dart';
import 'Reminder/ui/home_reminder.dart';
import 'Reminder/ui/widgets/button.dart';

void main() {
  // debugPaintSizeEnabled = true;
  runApp(const HomePage());
}

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

  @override
  Widget build(BuildContext context) {
    return GetMaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Medicine Reminder App'),
        ),
        body: Column(
          children: [
            Stack(
              children: [
                Image.asset(
                  'images/MenuImg.jpg',
                  width: 600,
                  height: 200,
                  fit: BoxFit.cover,
                ),
              ],
            ),
            const SizedBox(height: 10.0),
            Row(
              mainAxisAlignment: MainAxisAlignment.spaceAround,
              children: [
                ElevatedButton(
                  child: const Text('Button 1'),
                  onPressed: () {
                     Navigator.push(
                      context,
                      MaterialPageRoute(builder: (context) => const ReminderHomePage()),
                    );
                  },
                ),
                ElevatedButton(
                  child: const Text('Button 2'),
                  onPressed: () {},
                ),
                ElevatedButton(
                  child: const Text('Button 3'),
                  onPressed: () {},
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }
}

my "ReminderHomePage" code我的“ReminderHomePage”代码

import 'package:date_picker_timeline/date_picker_timeline.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:medreminder/Reminder/services/notification_services.dart';
import 'package:medreminder/Reminder/services/theme_services.dart';
import 'package:intl/intl.dart';
import 'package:medreminder/Reminder/ui/theme.dart';
import 'package:medreminder/Reminder/ui/widgets/add_remindbar.dart';
import 'package:medreminder/Reminder/ui/widgets/button.dart';
import 'package:medreminder/Reminder/ui/widgets/add_remindbar.dart';
import 'package:medreminder/home_page.dart';

class ReminderHomePage extends StatefulWidget {
  const ReminderHomePage({super.key});

  @override
  State<ReminderHomePage> createState() => _ReminderHomePageState();
}

class _ReminderHomePageState extends State<ReminderHomePage> {
  DateTime _selectedDate = DateTime.now();
  var notifyHelper;
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    notifyHelper=NotifyHelper();
    notifyHelper.initializeNotification();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: _appBar(),
      backgroundColor: context.theme.backgroundColor,
      body: Column(
        children: [
          _addTaskBar(),
          _addDateBar(),
        ],
        ),
    );
  }
  _addDateBar(){
    return Container(
            margin: const EdgeInsets.only(top: 20, left: 20),
            child: DatePicker(
              DateTime.now(),
              height: 100,
              width: 80,
              initialSelectedDate: DateTime.now(),
              selectionColor: Color(0xFFAAB6FB),
              selectedTextColor: Colors.white,
              dateTextStyle: GoogleFonts.lato(
                textStyle: TextStyle(
                    fontSize: 20,
                    fontWeight: FontWeight.w600,
                    color:Colors.grey
                ),
              ),
              dayTextStyle: GoogleFonts.lato(
                textStyle: TextStyle(
                    fontSize: 16,
                    fontWeight: FontWeight.w600,
                    color:Colors.grey
                ),
              ),
              monthTextStyle: GoogleFonts.lato(
                textStyle: TextStyle(
                    fontSize: 14,
                    fontWeight: FontWeight.w600,
                    color:Colors.grey
                ),
              ),
              onDateChange: (date){
                    _selectedDate=date;
              },
            ),
          );
  }
  _addTaskBar(){
    return Container(
            margin: const EdgeInsets.only(left: 20, right: 20, top: 5),
            child: Row(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: [
                Container(
                  margin: const EdgeInsets.symmetric(horizontal: 20),
                  child: Column(
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: [
                      Text(DateFormat.yMMMMd().format(DateTime.now()),
                      style: subHeadingStyle,
                      ),
                      Text("Today", 
                      style: headingStyle,
                      )
                    ],
                  ),
                ),
                MyButton(label: "Add Reminder", onTap: ()=>Get.to(AddReminderPage()))
              ],
            ),
          );
  }

  _appBar(){
    return AppBar(
      elevation: 0,
      backgroundColor: context.theme.backgroundColor,
      leading: GestureDetector(
        onTap: (){
            ThemeService().switchTheme();
            notifyHelper.displayNotification(
              title:"Theme Changed!",
              body: Get.isDarkMode?"Activated Light Theme!":"Activated Dark Theme!"
            );

            notifyHelper.scheduledNotification();
        },
        child: Icon(Get.isDarkMode ?Icons.wb_sunny_outlined:Icons.nightlight_round,
        size: 20,
          color:Get.isDarkMode ? Colors.white:Colors.black
        ),
      ),
      actions: [
        CircleAvatar(
          backgroundImage: AssetImage(
            "images/profile.png"
          ),
        ),
        // Icon(Icons.person,
        // size: 20,),
        SizedBox(width: 20,),
      ],
    );
  }
}

my "AddReminderPage" code我的“AddReminderPage”代码

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:intl/intl.dart';
import 'package:medreminder/Reminder/ui/theme.dart';
import 'package:medreminder/Reminder/ui/widgets/button.dart';
import 'package:medreminder/Reminder/ui/widgets/input_field.dart';

class AddReminderPage extends StatefulWidget {
  const AddReminderPage({super.key});
  

  @override
  State<AddReminderPage> createState() => _AddReminderPageState();
}

class _AddReminderPageState extends State<AddReminderPage> {
  final TextEditingController _titleController = TextEditingController();
  final TextEditingController _doseController = TextEditingController();
  DateTime _selectedDate = DateTime.now();
  String _endTime="09:15 PM";
  String _startTime = DateFormat("hh:mm a").format(DateTime.now()).toString();

  String _selectedRepeat = "None";
  List<String> repeatList=[
    "None",
    "Daily",
  ];

  int _selectedColor=0;
  
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: context.theme.backgroundColor,
      appBar: _appBar(context),
      body: Container(
        padding: const EdgeInsets.only(left: 20, right: 20),
        child: SingleChildScrollView(
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              Text(
                "Add Reminder",
                style: headingStyle,
              ),
              MyInputField(title: "Med Name", hint: "Enter Med Name Here..", controller: _titleController,),
              MyInputField(title: "Dose", hint: "Enter Dose Here..", controller: _doseController,),
              MyInputField(title: "Date", hint: DateFormat('dd/MM/yyyy').format(_selectedDate),
              widget: IconButton(
                icon: Icon(Icons.calendar_today_outlined, color: Colors.grey[700]),
                onPressed: () {
                  _getDate();
                },),
              ),
              Row(
                children: [
                  Expanded(
                    child: MyInputField(
                      title: "Start",
                      hint: _startTime,
                      widget: IconButton(
                        onPressed: (){
                          _getTime(isStartTime: true);
                        },
                        icon: Icon(
                          Icons.access_time_rounded,
                          color: Colors.grey[700],
                        ),
                      ),
                    ),
                  ),
                  SizedBox(width: 20,),
                  Expanded(
                    child: MyInputField(
                      title: "End",
                      hint: _endTime,
                      widget: IconButton(
                        onPressed: (){
                          _getTime(isStartTime: false);
                        },
                        icon: Icon(
                          Icons.access_time_rounded,
                          color: Colors.grey[700],
                        ),
                      ),
                    ),
                  )
                ],
              ),
              MyInputField(title: "Repeat", hint: "$_selectedRepeat",
                widget: DropdownButton(
                  // onChanged: (value){ 
                  // },
                  icon: Icon(Icons.keyboard_arrow_down,
                  color: Colors.grey[600],

                  ),
                  iconSize: 30,
                  elevation: 4,
                  style: subTitleStyle,
                  underline: Container(height: 0,),
                  onChanged: (String? newValue){
                    setState(() {
                      _selectedRepeat = newValue!;
                    });
                  },
                  items: repeatList.map<DropdownMenuItem<String>>((String? value){
                    return DropdownMenuItem<String>(
                      value: value,
                      child: Text(value!, style:TextStyle(color: Colors.grey))
                    );
                  }
                  ).toList()
                ),
              ),
              SizedBox(height: 14,),
              Row(
                mainAxisAlignment: MainAxisAlignment.spaceBetween,
                crossAxisAlignment: CrossAxisAlignment.center,
                children: [
                  _colorPalette(),
                  MyButton(label: "Create Reminder", onTap: ()=>_validateDate())
                ],
              )
            ],
          ),
        ),
      )
    );
  }

  _validateDate(){
    if(_titleController.text.isNotEmpty&&_doseController.text.isNotEmpty){
      //database
      Get.back();
    }else if(_titleController.text.isEmpty ||_doseController.text.isEmpty){
      Get.snackbar("Required", "All fields must be filled!",
      snackPosition: SnackPosition.TOP,
      backgroundColor: Colors.red,
      icon: Icon(Icons.warning_amber_rounded,
      color:Colors.red
      )
      );
    }
  }
  _colorPalette(){
    return Column(
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: [
                      Text("Color",
                      style: titleStyle,
                      ),
                      SizedBox(height: 6.0,),
                      Wrap(
                        children: List<Widget>.generate(
                          3,
                          (int index) {
                           return GestureDetector(
                            onTap: (){
                              setState(() {
                                _selectedColor=index;
                              });
                            },
                            child: Padding(
                              padding: const EdgeInsets.only(right: 6.0),
                              child: CircleAvatar(
                                radius: 12,
                                backgroundColor: index==0?greenColor:index==1?bluishClr:yellowColor,
                                child: _selectedColor==index? Icon(Icons.done,
                                color:Colors.white,
                                size: 14):Container(),
                              ),
                            ),
                          ); 
                          }
                        ),
                      )
                    ],
                  );
  }

   _appBar(BuildContext context){
    return AppBar(
      elevation: 0,
      backgroundColor: context.theme.backgroundColor,
      leading: GestureDetector(
        onTap: (){
          Get.back();
        },
        child: Icon(Icons.arrow_back,
        size: 20,
          color:Get.isDarkMode ? Colors.white:Colors.black
        ),
      ),
      actions: [
        CircleAvatar(
          backgroundImage: AssetImage(
            "images/profile.png"
          ),
        ),
        // Icon(Icons.person,
        // size: 20,),
        SizedBox(width: 20,),
      ],
    );
  }

  _getDate() async {
    DateTime? _pickerDate = await showDatePicker(
      context: context,  
      initialDate: DateTime.now(), 
      firstDate: DateTime(2020), 
      lastDate: DateTime(2122)
      );

      if(_pickerDate!=null){
        setState(() {
          _selectedDate = _pickerDate;
        });
      }
      else{
        print("Cant be empty, Try Again!");
      }
  }
  _getTime({required bool isStartTime}) async {
    var pickedTime = await _showTImePicker();
    String _formatedTime = pickedTime.format(context);
    if(pickedTime==null){
      print("Time cancel");
    }
    else if(isStartTime==true){
      setState(() {
        _startTime=_formatedTime;
      });
    }
    else if(isStartTime==false){
      setState(() {
        _endTime=_formatedTime;
      });
    }
  }
  _showTImePicker(){
    return showTimePicker(
    initialEntryMode: TimePickerEntryMode.input,  
    context: context,
    initialTime: TimeOfDay(
      hour: int.parse(_startTime.split(":")[0]), 
      minute: int.parse(_startTime.split(":")[1].split(" ")[0]))
    );
  }
}

and here is my main.dart这是我的 main.dart

import 'package:flutter/material.dart';
import 'package:get/get_navigation/src/root/get_material_app.dart';
import 'package:get_storage/get_storage.dart';
import 'package:medreminder/Reminder/services/theme_services.dart';
import 'package:medreminder/Reminder/ui/home_reminder.dart';
import 'package:medreminder/Reminder/ui/theme.dart';
import 'package:medreminder/home_page.dart';


Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await GetStorage.init();
  //runApp(MyApp());
  runApp(const MyApp());
}

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

  @override
  Widget build(BuildContext context) {
    return GetMaterialApp(
      title: 'Flutter Demo',
      debugShowCheckedModeBanner: false,
      theme: Themes.light,
      darkTheme: Themes.dark,
      themeMode: ThemeService().theme,

      home: const HomePage(),
    );
  }
}

another thing is that if i run the app from "HomePage" without my bottomnavigator it works perfectly.另一件事是,如果我在没有 bottomnavigator 的情况下从“主页”运行应用程序,它会完美运行。 thankyou.谢谢你。

In ReminderHomePage , rather than doing:ReminderHomePage中,而不是做:

MyButton(label: "Add Reminder", onTap: ()=>Get.to(AddReminderPage()))

try:尝试:

MyButton(
  label: "Add Reminder",
  onTap: () =>
    Navigator.push(
      context,
      MaterialPageRoute(builder: (context) => const AddReminderPage()),
  ))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM