ফ্লাটারে ন্যাভিগেশন

ফ্লাটার অ্যাপে এক স্ক্রিন থেকে অন্য স্ক্রিনে যাওয়ার জন্য রয়েছে Navigator.push()। আবার ব্যাক যাওয়ার জন্য রয়েছে Navigator.pop()। এখানে একটা উদাহরণ দেখিঃ

import 'package:flutter/material.dart';

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

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

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

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("Home Screen")),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            Navigator.push(
              context,
              MaterialPageRoute(builder: (context) => SecondScreen()),
            );
          },
          child: Text("Go to Second Screen"),
        ),
      ),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("Second Screen")),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            Navigator.pop(context); // Go back to HomeScreen
          },
          child: Text("Go Back"),
        ),
      ),
    );
  }
}

উপরের কোডে আমরা দুইটা স্ক্রিন/ উইজেট তৈরি করেছি। একটা হচ্ছে হোম স্ক্রিন। আরেকটা হচ্ছে সেকেন্ড স্ক্রিন। হোম স্ক্রিনে একটা বাটন যোগ করেছি। যেখানে ক্লিক করলে সেকেন্ড স্ক্রিনে ন্যাভিগেট করবে।

নতুন একটা স্ক্রিনে গেলে অটোমেটিক টাইটেল বারে ব্যাক বাটন যোগ করে দিবে। যা আমরা আবার প্রয়োজন মত মডিফাই করতে পারব। তার জন্য অ্যাপবারে automaticallyImplyLeading: false যোগ করতে হবে।

appBar: AppBar(
        title: Text("Second Screen"),
        automaticallyImplyLeading: false, // Hides the back button
      ),

Leave a Comment