اذهب إلى المحتوى

السؤال

نشر

السلام عليكم ورحمة الله وبركاته 

لدي مشكله ي اخوان 

انا استخدم tablayout ,viewPager لتقسيم الشاشة الى قسمين في اكتفتي واحد 

في كل قسم امتلك صفحة fragment وفي كل fragment استععمل BottomNavigationView

المشكلة الان كالتالي

في كل fragment انا عامل في الاعلى سلايد شو لعرض الصور المتحركة 

الان في وقت تشغيل التطبيق التطبيق يشتغل على table1 وكل شي شغال تمام فيه 

ولكن لما اروح منتقل الى table2 السلايد شو لا يعمل يظهر بشكل صورة بيضاء او كانه مش موجود اساس 

ولو رحت في table2 ضاغط على زر BottomNavigationView رح يظهر وقتها السلايد شو ويظل شغال لدي حتى لو رحت متنقل بين الجدول الاول والجدول الثاني 

كل المشكله في بداية تشغيل fragment للمرة الاولى فقط 

هل توجد طريقة لحل هذا المشكلة ؟

 

هذا كود table1 والي هو شغال ولا توجد اي مشكلة فيه 

 if (savedInstanceState == null) {
             getActivity(). getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
      new FragmentHome()).commit();

            }
            BottomNavigationView bottomNav = rootView.findViewById(R.id.bottom_navigation);

            BottomNavigationView bottomNavigationView = (BottomNavigationView)rootView. findViewById(R.id.bottom_navigation);
            bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
                @Override
                public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
                    Fragment selectedFragment = null;

                    switch (menuItem.getItemId()) {
                        case R.id.nav_home:
                      
                            selectedFragment = new CategoryMani();
                            break;
                        case R.id.nav_favorites:
                            selectedFragment = new FragmentHome();

                            break;
                        case R.id.nav_search:
                            selectedFragment = new FragmentListAll();
                            break;
                      
                    }
               getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, selectedFragment).commit();
                    return true;
                   
                }
            });

وهذا كود table2 والذي هو يحتوي على المشكلة 

if (savedInstanceState == null) {


                }

                    BottomNavigationView bottomNav = rootView.findViewById(R.id.bottom_navigation);

                    BottomNavigationView bottomNavigationView = (BottomNavigationView) rootView.findViewById(R.id.bottom_navigation);
                    bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
                        @Override
                        public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
                            Fragment selectedFragment = null;

                            switch (menuItem.getItemId()) {
                                case R.id.nav_home:
                                    selectedFragment = new TablesOderLIst();

                                    break;
                                case R.id.nav_favorites:
                                    selectedFragment = new FragmentHome();

                                    break;
                                case R.id.nav_search:
                                    selectedFragment = new FragmentProfile();
                                    break;
                                case R.id.nav_s:
                                    selectedFragment = new AdminHome();
                                    break;
                            }
                            getChildFragmentManager().beginTransaction().replace(R.id.fragment_container,
                                    selectedFragment).commit();
                            return true;
                       
                        }
                    });

 

 

طبعا انا حاولت احل هذا المشكلة وعلى ما يبدو المشكلة في الكود التالي :

                if (savedInstanceState == null) {


                }

على حسب ما فهمت ولكني لم استطع ايجاد الحل 

 

 

تصميم السلايد شو كالتالي لكل الصفحتين  

 

<androidx.coordinatorlayout.widget.CoordinatorLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/white"
            android:fitsSystemWindows="false">


            <com.google.android.material.appbar.AppBarLayout
                android:layout_width="match_parent"
                android:layout_height="152dp"
                android:fitsSystemWindows="true"
                android:theme="@style/Theme.AppCompat.DayNight.DarkActionBar">

                <com.google.android.material.appbar.CollapsingToolbarLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_gravity="center"
                    android:background="@color/white"
                    android:fitsSystemWindows="true"
                    app:expandedTitleGravity="top"
                    app:expandedTitleMarginEnd="64dp"
                    app:expandedTitleMarginStart="48dp"
                    app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">


                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_centerHorizontal="true"
                        android:gravity="center">

                        <androidx.cardview.widget.CardView
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_centerInParent="true">

                            <com.smarteist.autoimageslider.SliderLayout
                                android:id="@+id/Slider"
                                android:layout_width="match_parent"
                                android:layout_height="match_parent"
                                android:layout_alignParentTop="true" />

                        </androidx.cardview.widget.CardView>


                    </LinearLayout>


                </com.google.android.material.appbar.CollapsingToolbarLayout>


            </com.google.android.material.appbar.AppBarLayout>

وهذا توضيح للمشكلة وللفكره ايضا 

 

هذا الجدول الاول وهو شغال 100%

159134163042271.png

 

وهذا الجدول الثاني اول من اقوم بدخول له وهو يظهر ابيض فارغ 

159134163043972.png

Recommended Posts

  • 0
نشر (معدل)
بتاريخ 3 ساعات قال Mohamd Imran:

السلام عليكم أخي @مروان مروان3

 

جرب  إضافة التالي إلى جملة الشرط الخاصة بال table 2 هكذا


 if (savedInstanceState == null) {
             getActivity(). getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
      new FragmentHome()).commit();

            }

وأعلمني بالنتيجة 

هلا بيك عزيزي

النتيجة كالتالي: بنسبه للاسلايد شو الوضع ك السابق الجدول الاول شغال وثاني لا

 

تم التعديل في بواسطة مروان مروان3
  • 0
نشر
بتاريخ 54 دقائق مضت قال مروان مروان3:

النتيجة كالتالي: بنسبه للاسلايد شو الوضع ك السابق الجدول الاول شغال وثاني لا

 

تمام هل يمكنك إرفاق ملف المشروع حتى أستطيع الإطلاع على باقي الكود 

  • 0
نشر

هلا بيك ي غالي

اعذرني على تاخر ردي على هذا الموضوع بس لني كنت اشتغل على نقطة ثانية 

قمت بارفاق سورس كود مصغر يمكنك تشغيله وهو يحتوي على المشكله 

سوف تشاهد الاكتفي الاول او tabl1 يعمل بشكل جيد بعد اقلاع التطبيق ولكن لو قمت بتغير الى table2 ستكون الصفحة بيضا بالكامل وحتى تستيطع جلب بياناتها يجب ان تقوم بضغط على زر الهوم 

 

هذا المشكلة بتحديد طبعا هذا تحدث فقط في اول تشغيل لتطبيق بعدها حتى لو قمت بتنقل بين table1 and table2 لكن تكون المشكلة موجوده 

 

ياليت لو تكرمت تطلع على المشروع 

 

@Mohamd Imran

MyApplication6.rar

  • 0
نشر

@Mohamd Imran

مرحبا اخي لا اعلم اذا كنت قد اتطلعت على المشروع الذي ارفقته لك

لكنيي قمت بتجربة التالي : قمت بوضع الكود التالي في الصفحتان وما لحظته الان ان المشكلة قد صارت العكس

الان الصفحة الاولى السلايدر لايوت لا يظهر

بينما الجدول الثاني السلايدر لايوت شغال 

    if (savedInstanceState == null) {
            getChildFragmentManager().beginTransaction().replace(R.id.fragment_container,
                    new FragmentHome()).commit();
        }

 

وعند وضعه بطريقة التاليه:في table1 

 

  if (savedInstanceState == null) {
          getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
                    new FragmentHome()).commit();
  }

وفي الجدول الثاني كالتالي:

  if (savedInstanceState == null) {
                getChildFragmentManager().beginTransaction().replace(R.id.fragment_container,
                        new FragmentHomeDrive()).commit();
            }

يحدث العكس ايضا 

الان الجدول الاول السلايدر شو شغال بينما حين الانتقال الى الجدول الثاني السلايدر شو لا يعمل حتى نضغط على زر الهوم 

  • 0
نشر
بتاريخ On 6/7/2020 at 12:50 قال مروان مروان3:

هذا المشكلة بتحديد طبعا هذا تحدث فقط في اول تشغيل لتطبيق بعدها حتى لو قمت بتنقل بين table1 and table2 لكن تكون المشكلة موجوده 

 

السلام عليكم أخي ,شكرا لك سأطلع على الكود وأقوم بحل المشكلة وسأقوم بإخبارك ,قد يأخذ بعض الوقت 

  • 0
نشر
بتاريخ الآن قال Mohamd Imran:

السلام عليكم أخي ,شكرا لك سأطلع على الكود وأقوم بحل المشكلة وسأقوم بإخبارك ,قد يأخذ بعض الوقت 

شاكر لك عزيزي كثير ماشي مشكله باذن الله في انتظارك 

  • 0
نشر
بتاريخ 19 ساعات قال مروان مروان3:

الافضل اخي ان تطلع على مشروعي كامل قد يكون السورس كود الذي سبق ورفعته ناقص او لا تضح المشكلة فيه جيدا حتى تكون المشكلة اكثر وضوح قمت بتحميل السورس كود كامل على الرابط 

 

مرحبا بك أخي ,لم تحدث المشكلة في السورس كود السابق ,حاليا أقوم بتفحص السورس الكامل 

  • 0
نشر
بتاريخ منذ ساعة مضت قال Mohamd Imran:

مرحبا بك أخي ,لم تحدث المشكلة في السورس كود السابق ,حاليا أقوم بتفحص السورس الكامل 

@Mohamd Imran

هلا بيك ي غالي

لقد قمت بحذف الازار واعادة تكوين الجداول فقط مع السلايد شو ونتيجة كالتالي

المشكلة ليست في الازار 

المشكلة في الجدول كيف لا اعلم 

ولكن لو كان لدينا جدولين وكان الثاني يعمل السلايد شو فيه 

الاول لن يعمل ولكن لو قمت باضافة جدول ثالث فارغ فل يكن 

وقمت بالانتقال اليه والعوده الى الجدول الذي كان توجد المشكلة فيه 

فسيعود للعمل 

لا اعلم ما هو السبب بصراحه وقد بحثت وحاولت كثير ولكن بدون فائده والكود لا يوجد به اي خطاء لو كان يوجد لن يعمل ابدا

 

هذا فيديو قمت بتصويره من جهازي يظهر المشكلة وكيف يحدث ما اخبرتك به الان 

 

https://up4net.com/uploads/up4net-20200609-072729-240x426.mp4

ايضا مرفق لك العمل او السورس كود الذي في مقطع الفيديو وهو بدون الازار 

 

MyApplication4_3.rar

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...