কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েডে NavigationView এবং ActionBar একসাথে ব্যবহার


Navigation Drawer + Toolbar (ActionBar) বাস্তবায়ন

NavigationView একটি স্লাইডিং মেনু (Drawer) যা প্রোফাইল ইনফো এবং নেভিগেশন লিংক ধারণ করে। এটি DrawerLayout-র সাথে কাজ করে।

প্রজেক্ট তৈরি

Android Studio-তে New Project > Navigation Drawer Activity সিলেক্ট করুন—সেটি স্বয়ংক্রিয় সব ফাইল তৈরি করে দেয়।

মূল লেআউট ফাইলগুলো

  • activity_main.xml — DrawerLayout (রুট), NavigationView, include layout="app_bar_main"।
  • app_bar_main.xml — CoordinatorLayout > AppBarLayout > Toolbar + include layout="content_main"।
  • nav_header_main.xml — ড্রয়ারের হেডার (প্রোফাইল ছবি, নাম, ইমেইল)।
  • menu/activity_main_drawer.xml — মেনু আইটেম গুলো (আইকন + টাইটেল)।

MainActivity.java (মূল লজিক)

public class MainActivity extends AppCompatActivity 
        implements NavigationView.OnNavigationItemSelectedListener {
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        
        DrawerLayout drawer = findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar,
            R.string.navigation_drawer_open,
            R.string.navigation_drawer_close);
        drawer.addDrawerListener(toggle);
        toggle.syncState();
        
        NavigationView navView = findViewById(R.id.nav_view);
        navView.setNavigationItemSelectedListener(this);
    }
    
    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        int id = item.getItemId();
        if (id == R.id.nav_camera) { /* হ্যান্ডেল */ }
        else if (id == R.id.nav_gallery) { /* হ্যান্ডেল */ }
        // ... অন্যান্য আইটেম
        
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }
    
    @Override
    public void onBackPressed() {
        DrawerLayout drawer = findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }
    }
}

ড্রয়ার পজিশন পরিবর্তন

// ডান পাশে ড্রয়ার (RTL সাপোর্ট)
drawer.closeDrawer(GravityCompat.END);

  1. Android ActionBar-এ মেনু আইটেম হাইড/শো করার পদ্ধতি

  2. অ্যান্ড্রয়েডে ট্রান্সপারেন্ট স্ট্যাটাসবার এবং একশনবার কীভাবে তৈরি করবেন?

  3. ActionBarActivity-এর ActionBar-এর ব্যাকগ্রাউন্ড রঙ কীভাবে পরিবর্তন করবেন?

  4. Android-এ NavigationView ব্যবহার করে নেভিগেশন ড্রয়ার তৈরির পদ্ধতি