تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ راضیه کارگر
نمایش همزمان چند فرگمنت
جامعه جاوا (اندروید) ایجاد شده در ۳۱ تیر ۱۴۰۰

با سلام. در BottomNavigationView با توجه به اینکه فرگمنگ‌ها را replace هم میکنم باز فرگمنت home را همیشه نشان میدهد . چون در خاصیت name در frame موجود در mainActivity  قرار گرفته است و فرگمنت پیش فرض است. و باز زدن روی دکمه home باز دوباره نشان میدهد.  چرا؟ ( در فایل‌های ارسالی  کل پوشه src را قرار دادم . از اندروید استادیو 3.5 استفاده کردم. لطفا برای اجرای اپلیکیشن نام کاربری را فعلا 1  رمز عبور را 1234 بگذارید.)

 

البته روی متدهایی که استاد استفاده کردند خط کشیده شده بود . بنابر این از متد‌های زیر استفاده شده است.

 

mainBottomNavigation.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                FragmentTransaction fragmentTransaction=getSupportFragmentManager().beginTransaction();
                switch (item.getItemId()){
                    case R.id.homeItem:
                        FragmentTransaction fragmentTransaction4=getSupportFragmentManager().beginTransaction();
                        fragmentTransaction.replace(R.id.nav_host_container,new HomeFragment());
//                        fragmentTransaction.addToBackStack("HomeFragment");
                        fragmentTransaction.commit();
                        break;
                        case R.id.profileItem:
                        FragmentTransaction fragmentTransaction2=getSupportFragmentManager().beginTransaction();
                        fragmentTransaction2.replace(R.id.nav_host_container,new ProfileFragment());
                        //fragmentTransaction.addToBackStack("ProfileFragment");
                        fragmentTransaction2.commit();
                        break;
                    case R.id.cartItem:
//                        FragmentTransaction fragmentTransaction2=getSupportFragmentManager().beginTransaction();
                        fragmentTransaction.replace(R.id.nav_host_container,new CartFragment());
                        //fragmentTransaction.addToBackStack("ProfileFragment");
                        fragmentTransaction.commit();
                        break;
                    case R.id.categoryItem:
//                        FragmentTransaction fragmentTransaction3=getSupportFragmentManager().beginTransaction();
                        fragmentTransaction.replace(R.id.nav_host_container,new CategoryFragment());
                        //fragmentTransaction.addToBackStack("ProfileFragment");
                        fragmentTransaction.commit();
                        break;

                }
                return true;
            }
        });


mainBottomNavigation.setOnItemReselectedListener(new NavigationBarView.OnItemReselectedListener() {
            @Override
            public void onNavigationItemReselected(@NonNull MenuItem item) {

            }
        });

سلام و احترام

 

من متوجه سوالتون نشدم ممنون میشم با کد قدم به قدم + اسکرین شات‌های مربوطه توضیحاتی بدیدتا شما رو بهتر راهنمایی کنم (از اونجایی که پروژه جدای از این سرفصل اموزشی هست تا دید کلی نسبت به کارتون بدست بیارم) .

همچنین کد‌ها رو ممنون میشم به صورت فرمت مناسب ارسال کنید تا خوانا باشد (راهنمایی : سمت چپ بالا گزینه ای وجود داره که میتونید بر اساس زبان مورد نظرتون کدتون رو فرمت بندی کنید)

این اموزش کوتاه هم براتون قرار میدم امیدوارم کمکتون کنه .(هر چند در ادامه به صورت پروژه محور صحبت شده) لینک

پوریا شفیعی ۳۱ تیر ۱۴۰۰، ۱۶:۴۲

متشکر از دوستانی که وقت گذاشتند. مشکل با قرار دادن Fragment Layout به جای fragment و حذف خاصیت name از XML و مقدار دهی اولیه  فرگمنت در mainActivity حل شد.

راضیه کارگر ۰۱ مرداد ۱۴۰۰، ۱۱:۳۴