نمایش همزمان چند فرگمنت

پرسیده شده
فعالیت 1010 روز پیش
دیده شده 424 بار
0

با سلام. در 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) {

            }
        });

فایل پیوست
src.zip
282.66 KB

0
حذف شده

سلام و احترام

 

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

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

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

فایل پیوست

پوریا شفیعی

توسط

پوریا شفیعی

31 تیر 00

2
حذف شده

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

فایل پیوست

راضیه کارگر شورکی

توسط

راضیه کارگر شورکی

1 مرداد 00

حذف شده
خوشحالم مشکلتون رو پیدا کردید و تجربه تون رو به اشتراک گذاشتید تا سایر دوستان استفاده کنند موفق باشین
پوریا شفیعی

1 مرداد 00

حذف شده
این خیلی خوبه که خودتون مشکل رو پیدا و حل کردین این باعث تجربه بیشتر شما میشه موفق باشین