كيفية استخدام الأجزاء في تطبيقات Android للحصول على واجهة مستخدم قوية وديناميكية

مؤلف: John Stephens
تاريخ الخلق: 28 كانون الثاني 2021
تاريخ التحديث: 18 قد 2024
Anonim
مبادرة أكل عيش - إنشاء تطبيق موبايل كامل متصل بقاعدة بيانات باستعمال Xamarin.Forms و Couchbase Lite
فيديو: مبادرة أكل عيش - إنشاء تطبيق موبايل كامل متصل بقاعدة بيانات باستعمال Xamarin.Forms و Couchbase Lite

المحتوى


ملاحظة: تفترض هذه المقالة أنك معتاد على أساسيات تطوير Android و Java. يجب أن تكون قادرًا بالفعل على إنشاء تخطيطات أساسية واستخدام طرق العرض ، عند النقر و findViewByID. إذا فهمت هذه المفاهيم ، فأنت مستعد لتعلم استخدام الشظايا!

تُعد الشظايا ميزة قوية لجهاز Android UI الجيد الذي يسمح لك بالاقتراب من تصميم التطبيق بطريقة معيارية. هذه طرق عرض متميزة يمكن أن تحتوي على تخطيطات كاملة والتي تأتي مزودة برمز Java المصاحب لها. من خلال تقسيم واجهة المستخدم الخاصة بك بهذه الطريقة ، يمكنك إنشاء المزيد من التخطيطات المنطقية التي يسهل على المستخدمين فهمها. يمكنك تزويدهم بمعلومات وضوابط إضافية دون الحاجة إلى مغادرة النشاط.

انظر أيضا: شظايا خالية من المتاعب: استخدام مكون هندسة الملاحة لنظام Android

تمنحك الشظايا المزيد من الخيارات في تصميم التطبيق الخاص بك ويمكن أن تحسن بشكل كبير من تجربة المستخدم

ما هو أكثر من ذلك ، هو أن شظايا تتصرف مثل الطبقات والكائنات التي يمكن أن يكون لديك متعددة الحالات من نفس الشظية. هذا يعني أنه يمكنك إعادة استخدام نفس التخطيط مرارًا وتكرارًا دون الحاجة إلى إعادة كتابة التعليمات البرمجية ، أو حتى إظهار نسختين مختلفتين جنبًا إلى جنب.


باختصار ، في حين أن هذا لم يحدث بعد آخر شيء يمكن تعلمه عندما يتعلق الأمر بقائمة مهام لا نهاية لها على ما يبدو مرتبطة بتطبيقات Android ، فهو شيء يمنحك المزيد من الخيارات في تصميم التطبيق وتحسين تجربة المستخدم إلى حد كبير - مما يجعله أكثر من الوقت المستغرق في التعرف .

كيفية بناء الجزء الأول الروبوت الخاص بك

لذا ، ماذا يمكن أن نفعل بشظايا لا معنى لها بأي طريقة أخرى؟

ربما لدينا قائمة من الملفات - ربما هذا معرض للصور - ونريد أن نقدم وصفًا ونمنح المستخدم خيار الحذف أو المشاركة. هذا النوع من الشيء. يمكننا إرسالها إلى صفحة "وصف" جديدة في كل مرة باستخدام نشاط منفصل ، ولكن إذا استخدمت الأجزاء ، فيمكننا الاحتفاظ بها في صفحة واحدة والتي ستكون أقل توتراً.

افتح Android Studio وقم بإنشاء قائمة بالصور العشوائية في activity_main.xml. أنا أستخدم صور دراغون بول سوبر لأنني الطالب الذي يذاكر كثيرا وهذا هو ما أكذب عليه على جهاز الكمبيوتر الخاص بي ...


الآن سنقوم بإنشاء الجزء الأول الخاص بنا.

للقيام بذلك ، أنت ذاهب إلى ملف> جديد> شظية. يجب تحديد MainActivity.java على اليسار عند القيام بذلك ، وستختار جزءًا "فارغًا" في الوقت الحالي. ستتمكن حينئذٍ من اختيار اسم للإنشاء الجديد ، والذي سنطلق عليه "الوصف". قم بإلغاء تحديد الصندوقين الموجودين أسفله - لسنا بحاجة إلى ذلك الآن.

بمجرد الانتهاء من ذلك ، ستجد الآن أنه ليس لديك ملف java جديد يسمى Description.java ، ولكن أيضًا ملف تخطيط جديد يسمى fragment_description.xml - تمامًا كما لو كنت قد قمت بإنشاء فصل جديد! هذا يعني أنك ستضع الشفرة التي تتوافق مع الجزء الجديد في ملف جافا المنفصل.

مضيفا تخطيطات ، وجهات النظر ورمز

الخبر السار هو أنه من السهل جدًا بالنسبة لنا إضافة طرق عرض وتخطيط عندما نستخدم الأجزاء. سنفعل ذلك بنفس الطريقة المعتادة من خلال تحرير fragment_timer.xml.

دعنا نستخدم تخطيط خطي مرة أخرى وهذه المرة نضيف بعض عناصر التحكم والنص الوصفي. يمكنك التمسك أي شيء هنا الآن.

لذا فإن السؤال التالي الآن هو: كيف تجعل هذا يظهر فعليًا في تطبيقك؟

يمكنك القيام بذلك عن طريق إضافة الجزء إلى النشاط ، تمامًا كما تفعل مع أي عرض آخر. لذلك ، توجه إلى activity_main.xml وأضف طريقة العرض بحيث تشغل جزءًا من الشاشة - ربما في الجزء السفلي.

إذا كنت ترغب في القيام بذلك بالطريقة التي قمت بها ، فقد استخدمت تخطيطًا خطيًا رأسيًا وأعطيت كل الصور وزنًا 1 والوزن بوزن 2.

ستلاحظ أن المعاينة لا تعرض لك الجزء الفعلي ، بل مجرد حامل مكان. وبالمثل ، لاحظ أنه كان علي تضمين اسم الجزء في XML ، حتى يعرف Android مكان العثور عليه. تحتاج أيضًا إلى معرف لكل جزء.

الرمز

كما تمت مناقشته ، فإن الكود الذي نحتاجه لاستخدام الأجزاء سيذهب في ملف جافا الخاص به. في هذه الحالة ، هذا هو ملف Description.java.

إذا قمت بإلغاء تحديد هذه الصفحة ، فسترى أن هناك مُنشئًا (تمامًا كما في أي فئة تنشئ كائنًا) وطريقة تسمى onCreateView. هذه الطريقة هي المكان الذي يتم فيه استخدام ملف xml لتضخيم هذا العرض ، كما أنه يعادل نظرك المعتاد OnCreate الخاص طريقة في النشاط القياسي.

بالنسبة للجزء الأكبر ، يمكنك أن تفعل الأشياء كما تفعل عادة هنا. findViewByID يعمل ويمكنك استخدام هذا لتغيير النص وما إلى ذلك ولكن ستحتاج إلى الحصول على المرجع بشكل مختلف قليلاً. تغيير الخط الذي يقرأ:

إرجاع inflater.inflate (R.layout.fragment_descriptionالحاوية كاذبة) ؛

إلى:

عرض v = inflater.inflate (R.layout.fragment_descriptionالحاوية كاذبة) ؛

ثم استخدم:

v.findViewByID.

يمكنك الآن الوصول إلى وجهات نظرك كما تفعل عادةً:

عرض عام على onCreateView (نافخة LayoutInflater ، حاوية ViewGroup ، حزمة حفظتInstanceState) {View v = inflater.inflate (R.layout.fragment_descriptionالحاوية كاذبة) ؛ زر okButton = v.findViewById (R.id.حسنا) ؛؛ shareButton الزر = v.findViewById (R.id.شارك)؛ okButton.setOnClickListener (جديد View.OnClickListener () {public void onClick (View v) {Toast.makeText(getActivity () ، "حسنًا!" ، نخب.LENGTH_LONG ).تبين()؛ }})؛ shareButton.setOnClickListener (جديد View.OnClickListener () {public void onClick (View v) {Toast.makeText(getActivity () ، "مشاركة ..." ، نخب.LENGTH_LONG ).تبين()؛ }})؛ عودة الخامس ؛ }}

استخدام شظايا مع مضاعفات الحالات

يمكنك أن ترى كيف أنه من الأسهل بكثير إنشاء واجهة مستخدم ورمز مبسطة عندما نستخدم الأجزاء. بدلاً من استخدام التنسيقات داخل التخطيطات ثم تجميع الكثير من النقرات داخل ملف Java واحد. والأكثر من ذلك هو أن هذا النهج "المعياري" سيتيح لك استخدام طريقة العرض هذه عبر الأنشطة وحتى في القوائم والمواقع الديناميكية الأخرى.

ولكن الجزء الرائع حقًا هو حقيقة أنه يمكنك الحصول على نسخ متعددة من هذه القطعة ذاتها الموجودة في نفس الوقت.

للقيام بذلك أمر بسيط: يمكنك فقط إضافة أكثر من عرض وتضخيم نفس الرمز الدقيق.

الآن نأمل أن تتمكن من البدء في رؤية بعض من قوة استخدام الأجزاء: تخيل وجود Recycler View (قائمة التمرير) من الصور ، كل منها يحتوي على التفاصيل وعناصر التحكم الموجودة أسفله. لن تكون هناك حاجة لإنشاء تخطيط جديد بالكامل في كل مرة ويمكنك إخفاء المشاهدات حتى ينقر المستخدم على الصورة!

والأكثر من ذلك أنه يمكنك أيضًا إنشاء أجزاء جديدة برمجيًا. كل ما تحتاجه هو مكان ما للجزء الذي تريده في التصميم الخاص بك - مثل تخطيط الإطار (الذي سأتصل به fragmentTarget) وبعد ذلك يمكنك القيام بما يلي:

إضافة جزء = جزء جديد الوصف () ؛ معاملة FragmentTransaction = getSupportFragmentManager (). startTransaction ()؛ transaction.replace (R.id.fragmentTarget، addFragment)؛ transaction.addToBackStack (خالية)؛ transaction.commit ()؛

تأكد من استيراد الفئات اللازمة - ستتم مطالبتك كلما حاولت استخدام الأجزاء في التعليمات البرمجية الخاصة بك. فقط تأكد من اختيار الخيار العلوي الذي يقول "v4".

تعد القدرة على إضافة أجزاء بطريقة برمجية مهمة لأنه يعني أنه يمكننا إنشاء قائمة ديناميكية من الصور (التي قمنا بتنزيلها ، والموجودة في مجلد معين وما إلى ذلك) ومن ثم لدينا التفاصيل منبثقة لنا على الفور.

لذلك ، في هذا المثال الجديد ، تمت إضافة الجزء الثاني برمجيًا.

أخيرًا ، قد تجد نفسك ترغب في تغيير شكل شظاياك حسب المكان الذي توجد فيه. والخبر السار هو أنه يمكنك القيام بذلك بسهولة عن طريق تمرير معرف كحزمة واحدة عند إنشاء الجزء ثم استخراج هذه القيمة في الطرف الآخر.

في MainActivity.java استخدام:

حزمة حزمة = حزمة جديدة () ؛ bundle.putInt ("ID" ، 1) ؛ addedFragment.setArguments (حزمة)؛

ثم في Description.java أضف:

int eyeD = 0 ؛ Bundle bundle = this.getArguments ()؛ if (bundle! = null) {eyeD = bundle.getInt ("ID"، 0)؛ } التبديل (eyeD) {الحالة 1: ...

يمكنك بعد ذلك - على سبيل المثال - الحصول على تطبيقك لإظهار ملاحظات مختلفة لكل صورة.

التعليقات الختامية

هذه هي الطريقة التي تستخدم بها الشظايا. نأمل أن تتعرف على الأساسيات وأن هذا المنشور قد أعطاك ما يكفي من الفهم بحيث يمكنك المضي قدمًا واستكشاف الباقي. والأهم من ذلك ، آمل أن تظهر لك بعض الاستخدامات المحتملة للشظايا والإمكانات التي توفرها لتصميم تطبيق أكثر ذكاءً.

إذا كنت تريد أن ترى مثالًا آخر للشظايا قيد التنفيذ ، فاحرص على التحقق من نشرتي الأخيرة عند إنشاء مشغل مخصص!

تطوير أندرويد:

  • كيفية إنشاء تطبيق VR لنظام Android خلال 7 دقائق فقط
  • بناء العمل الخاص بك لمساعد جوجل
  • الجذر الروبوت: كل ما تحتاج إلى معرفته!
  • تشريح التطبيق: مقدمة لدورات حياة النشاط
  • Android Jetpack: ماذا تعني الإعلانات الأخيرة لمكتبة دعم Android؟

يمكن أن يساعدك Unity Certification على الحصول على وظيفة أحلامك كمطور ألعاب. هذه هي الشهادات التي تمنح مباشرة من Unity والتي يتم الاعتراف بها بشكل جيد في هذه الصناعة. ولكن هل هي قيمة جيدة؟ هل هي أفضل ا...

فيما يتعلق بأخبار Apple لهذا الأسبوع ، ما زلنا ننزلق من العاصفة الأسبوع الماضي الذي شهدنا إطلاق تشكيلة iPhone 2019. لدينا بعض تقديرات المبيعات المبكرة لأجهزة iPhone 11 و iPhone 11 Pro و iPhone 11 Pro ...

نوصيك