اضافة انميشن اثناء الانتقال بين fragment ببرنامج اندرويد ستوديو

 

اضافة انميشن اثناء الانتقال بين fragment ببرنامج اندرويد ستوديو


اضافة انميشن اثناء الانتقال بين fragment ببرنامج اندرويد ستوديو


السلام عليكم ورحمة الله وبركاته , قد سبق وان شرحنا لكم جميع الطرق التي يمكنك من خلالها استخدام وهي عباره Fragment وهي مسؤوله عن تقسيم الشاشه في الاندرويد استوديو او داخل التطبيق الخاص بك مثل الذي يوجد في تطبيق واتساب حيث يحتوي على المحادثه و الحالات و المكالمات عند النقر على اي زر منهم يتم عرض محتوياته في شاشه واحده وهذه هي فكره الفراجمنت , واليوم سوف نقدم لكم ستايل او انيميشن بسيط جدا عند النقر على اي زر من الازرار الموجوده في الفراجمنت او يمكنك عملها على ازرار تنقلك الى  اكتيفيتي , الامر يرجع اليك سوف يظهر مؤشر قصير جدا يتحرك مع الزر الذي سوف تنقر عليه يمكنك استخدام هذا الزر كنوع من تحسين شكل التطبيق الخاص بك وايضا سوف تتعرف على اكواد و اشياء بسيطه جدا لم تكن تعرفها داخل التصميمات في الاندرويد ستوديو xml . 


كيفية تغيير شكل النقر على الزر في برنامج اندرويد ستوديو


اولا قم بعمل تصميم xml وبه table ولكن بإستخدام material وقم بعمل الكود الموجود في الصورة وهو بسيط جدا وسوف تشاهد ظهور ايرور في tabindicator لا تقلق منه .



قم بعمل تصميم جديد بإسم style واتوقع انكم اصبحتم قادرين الان على انشاء تصميم جديد , بداخله قم بعمل solid و corners كما بالصورة وهذا هو الشكل الذي سوف يظهر فوق الاسماء الموجوده في التصميم .



اذهاب الى MainActivity.class وقم بتعريف كل المتغيرات وسوف تلاحظ ظهور ايرور في MainAdapter قم بالنقر على alt + enter وبعدها creat inner class .



بعد حل المشكلة السابقة سوف جدة قام بعمل method باسم MainAdapter اجعلها ترث من FragmentPagerAdapter وبعدها alt + enter وحدد العناصر التالية وانقر موافق .



ايضا اضغط على alt + enter وبعدها حدد اول اختيار كما بالصورة وسوف تحل المشكلة .



الان يمكنك النظر الى الكود التالي او نسخه واستخدامه وسوف تجد في النهايه ان النتيجة ستظهر كما بالصورة الخاصه بالمقالة بهذا الدرس .

#public class MainActivity extends AppCompatActivity {
    TabLayout tabLayout;
    ViewPager viewPager;
    MainAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tabLayout = findViewById(R.id.table);
        viewPager = findViewById(R.id.viewpager);
        adapter = new MainAdapter(getSupportFragmentManager());

        // هنا نضيف الفراجمنت التي نريدها
        adapter.AddFragment(new BlankFragment1() , "First");
        adapter.AddFragment(new BlankFragment2() , "second");
        adapter.AddFragment(new BlankFragment3() , "third");

        // نرسل الادبتر هنا ليحدث لهم انميشن اثناء الحركه
        viewPager.setAdapter(adapter);

        // ربط الشريط العلوي بي الانميشن
        tabLayout.setupWithViewPager(viewPager);
    }

    private class MainAdapter extends FragmentPagerAdapter {
        // تعريف array
        ArrayList<Fragment> fragmentArray = new ArrayList<>();
        ArrayList<String> stringArray = new ArrayList<>();

        // انشاء constructor
        private void AddFragment(Fragment f, String s) {
            // اضافة فرجمنت
            fragmentArray.add(f);
            // اضافة array
            stringArray.add(s);
        }

        public MainAdapter(@NonNull FragmentManager fm) {
            super(fm);
        }

        @NonNull
        @Override
        public Fragment getItem(int position) {
            // هنرجع الفراجمنت هنا
        return fragmentArray.get(position);
        }

        @Override
        public int getCount() {
            // هنرجع حجم الفراجمنت هنا
            return fragmentArray.size();
        }

        @Nullable
        @Override
        public CharSequence getPageTitle(int position) {
            // هنرجع هنا عنوان النص
            return stringArray.get(position);
        }
    }
}



تعليقات