Return to Video

07-39 إنشاء واجهة مستخدم ذات جزأين للجهاز اللوحي

  • 0:00 - 0:03
    مع الأخذ في الاعتبار المعرفة التي
    تعلمناها حول إلغاء الموارد
  • 0:03 - 0:04
    في المجلدات الأخرى،
  • 0:04 - 0:08
    سنراجع التعليمة البرمجية معًا حول كيفية
    إنشاء واجهة مستخدم ذات جزأين
  • 0:08 - 0:12
    للجهاز اللوحي. أولاً، قم بإزالة مجلد القيم
    W820dp لأننا لسنا بحاجة إلى تقديم
  • 0:12 - 0:16
    منطق محدد عندما يكون الاتجاه الحالي
    أكبر من 820dp.
  • 0:16 - 0:19
    بعذ ذلك امض قدمًا و قم بإجراء
    تغييرات تخطيط XML.
  • 0:19 - 0:22
    ثم أنشئ مجلد تخطيط جديد SW 600dp.
  • 0:22 - 0:26
    ثم أضف ملفًا جديدًا باسم activity_main.
  • 0:26 - 0:31
    نستخدم نفس اسم الملف كما هو في
    مجلد التخطيط الأساسي activity_main
  • 0:31 - 0:35
    بحيث يلغي اسم الملف السلوك
    على الأجهزة اللوحية بشكل خاص.
  • 0:35 - 0:38
    لمعرفة التعليمة البرمجية لهذا
    الملف يمكنك التحقق مما يلي.
  • 0:39 - 0:43
    بشكل أساسي، هي عبارة عن
    تخطيط خطي أفقي يمكنه الاحتفاظ بجزء توقعات
  • 0:43 - 0:46
    على اليسار وجزء تفاصيل على اليمين.
  • 0:46 - 0:50
    هذا هو الوقت المناسب للحديث عن
    الأجزاء الديناميكية والثابتة.
  • 0:50 - 0:53
    في تطبيقنا، جزء التوقعات
    هو الجزء الثابت لأننا
  • 0:53 - 0:57
    حددناه في تخطيط XML بغض النظر عن
    الاتجاه أو حجم الجهاز،
  • 0:57 - 0:59
    ونحن نعلم بأننا سنحتاج إلى
    جزء توقع في النشاط الأساسي.
  • 0:59 - 1:03
    من ناحية أخرى، لا نعلن سوى عن حاوية
    لجزء التفاصيل، ولكن
  • 1:03 - 1:05
    ليس الجزء الفعلي.
  • 1:05 - 1:08
    تمت تهيئته بقيم مختلفة
    في كل مرة على أنه
  • 1:08 - 1:11
    جزء ديناميكي، لذا من الأفضل
    إنشاء هذا الجزء وإضافته
  • 1:11 - 1:15
    ديناميكيًا في معاملة جزء في تعليمة Java
    البرمجية في النشاط الأساسي.
  • 1:15 - 1:19
    بهذه الطريقة، يمكن لمدير الجزء
    تعقب قيم التهيئة هذه
  • 1:19 - 1:23
    وتمريرها إلينا مرة أخرى بعد تدوير الجهاز.
  • 1:23 - 1:26
    عندئذٍ نحتاج إلى تحديث تخطيطات
    واجهة المستخدم ذات الجزء الواحد
  • 1:26 - 1:28
    بحيث تتسق مع الحالة ذات الجزأين.
  • 1:28 - 1:32
    لذا في الملف الرئيسي للنشاط الخاص بمجلد
    التخطيط الأساسي، يُستخدم هذا ليكون
  • 1:32 - 1:35
    تخطيط إطار سوف نعلن عنه كجزء توقع.
  • 1:35 - 1:37
    بهذه الطريقة سيلائم الواجهة ذات الجزأين،
  • 1:37 - 1:40
    حيث تم الإعلان عن هذا أيضًا كجزء في XML.
  • 1:40 - 1:43
    بهذه الطريقة، لن يحتاج
    النشاط الرئيسي إلى إضافة
  • 1:43 - 1:45
    جزء التوقع بطريقة ديناميكية.
  • 1:45 - 1:47
    في أسلوب طريقة عرض OnCreate
    الخاصة بالنشاط الرئيسي.
  • 1:47 - 1:51
    حيث إن الجزء موجود داخل هذا التخطيط
    بالفعل، يمكننا إزالة هذا فقط،
  • 1:51 - 1:53
    حتى لا نضيفة مرة ديناميكيًا.
  • 1:53 - 1:58
    وبالمثل نعدّل تخطيط تفاصيل
    النشاط في مجلد التخطيط الأساسي.
  • 1:58 - 2:01
    ونغيّر معرّف تخطيط الإطار
    ليكون حاوية تفاصيل الطقس.
  • 2:01 - 2:06
    وبالتالي يطابق معرف طريقة عرض الحاوية
    في حالة واجهة المستخدم ذات الجزأين.
  • 2:06 - 2:08
    النمط هنا هو أن تتم إضافة جزء التفاصيل إلى
  • 2:08 - 2:11
    حاوية تسمى weatherdetailcontainer،
  • 2:11 - 2:14
    في حالة الجزأين والجزء الواحد.
  • 2:14 - 2:16
    نظرًا لأننا قمنا بتغيير
    اسم الحاوية،
  • 2:16 - 2:18
    يجب علينا أيضًا تحديث نشاط التفاصيل.
  • 2:18 - 2:20
    لا يُستخدم هذا إلا في وضع الجزء الواحد.
  • 2:20 - 2:22
    هنا حيث قمنا بتغيير اسم الحاوية.
  • 2:23 - 2:26
    في وضع الجزء الواحد، سيضيف النشاط
    المفصّل جزء التفاصيل
  • 2:26 - 2:28
    إلى هذه الحاوية ديناميكيًا.
  • 2:28 - 2:32
    بعد تعديل التخطيط، علينا
    تحديث النشاط الرئيسي
  • 2:32 - 2:34
    لكي نضيف جزء التفاصيل بطريقة ديناميكية.
  • 2:34 - 2:38
    في أسلوب OnCreate للنشاط الرئيسي،
    نتحقق من وجود حاوية
  • 2:38 - 2:43
    تفاصيل الطقس في التخطيط لمعرفة هل هذه
    واجهة مستخدم ذات جزأين أم لا.
  • 2:43 - 2:46
    نتعقب هذه المعلومات في متغير منطقي
    يسمى mTwoPane.
  • 2:46 - 2:50
    تذكر أننا نبدأ بالحرف m،
    لأنه متغير خاص بعضو.
  • 2:50 - 2:52
    في هذه الحالة، يجب أن يكون
    المتغير المنطقي "صحيحًا".
  • 2:52 - 2:54
    وبالتالي نمضي قدمًا في إنشاء
    جزء تفاصيل جديد،
  • 2:54 - 2:57
    وإضافته إلى weatherdetailcontainer.
  • 2:57 - 3:00
    إننا نلتزم بالتغيير عن طريق استخدام
    معاملة جزء،
  • 3:00 - 3:01
    التي قدمها رادو سابقًا.
  • 3:01 - 3:05
    وإلا، إذا لم تكن حاوية التفاصيل
    موجودة في التخطيط، فيجب أن يكون
  • 3:05 - 3:09
    المتغير المنطقي "خطأ"، مما يعني أن هذه
    واجهة مستخدم ذات جزء واحد للهواتف.
  • 3:09 - 3:13
    في هذه الحالة، سيعالج نشاط التفاصيل
    عرض جزء التفاصيل.
  • 3:13 - 3:17
    لاحظ أنه في حالة الجزأين، نتحقق من حالة
    حزمة savedinstantstate
  • 3:17 - 3:18
    لنعلم إذا كانت خالية.
  • 3:18 - 3:20
    فإذا لم تكن حزمة savedinstantstate خالية،
  • 3:20 - 3:23
    فلا ننشئ واحدة جديدة، للسبب التالي.
  • 3:23 - 3:25
    لنفترض أنك تريد تدوير الجهاز.
  • 3:25 - 3:26
    قبل فشل النشاط
  • 3:26 - 3:30
    والأجزاء، نخزّن المعلومات
    في حزم حفظ الحالة.
  • 3:30 - 3:34
    ثم بعد تغيير الاتجاه، يستعيد النظام النشاط
  • 3:34 - 3:37
    والأجزاء، عن طريق تمرير نفس الحزمة،
  • 3:37 - 3:40
    بحيث يمكن إعادة إنشائها بنفس الحالة.
  • 3:40 - 3:43
    وهذا يعني أنه في حالة وجود الحزمة،
    عندئذٍ يجب أن نسمح للنظام
  • 3:43 - 3:47
    بمعالجة استعادة جزء التفاصيل،
    ويمكننا تخطي هذه التعليمة البرمجية.
  • 3:47 - 3:49
    تتم إضافة جزء تفاصيل
    مرة واحدة بطريقة ديناميكية.
  • 3:49 - 3:53
    مما يجعله يعرض بعض بيانات
    العنصر النائب لأغراض الاختبار فقط.
  • 3:53 - 3:56
    وفي وقت لاحق، سنفحص بدقة المنطق
    الصحيح، بحيث يمكنه عرض
  • 3:56 - 3:58
    المعلومات الصحيحة للبيانات
    المحددة على اليسار.
  • 3:58 - 4:00
    تعديل جزء التفاصيل بحيث
  • 4:00 - 4:04
    لا يتوقع التعليمة الهدف القادمة
    للحصول على URI للبيانات.
  • 4:04 - 4:07
    في هذه الحالة، سيتراجع جزء التفاصيل
  • 4:07 - 4:09
    إلى بعض بيانات العنصر النائب فقط
    الموجودة في XML الخاص بنا.
  • 4:09 - 4:13
    والسبب وراء أن يصبح الهدف فارغًا
    هو أن جزء التفاصيل يمكن أن
  • 4:13 - 4:15
    يوجد داخل النشاط الرئيسي.
  • 4:15 - 4:18
    ولا يتم تشغيل النشاط الرئيسي مع URI
  • 4:18 - 4:22
    لتاريخ واحد فقط مثل نشاط التفاصيل
    الذي يتم تشغيله معه عادةً.
  • 4:22 - 4:23
    بمجرد إجراء التغييرات
  • 4:23 - 4:25
    للإطارات السلكية، يجب
    أن يبدو التطبيق هكذا.
  • 4:25 - 4:28
    والسبب وراء عدم عرض رمز هنا،
    يرجع إلى أننا قمنا
  • 4:28 - 4:31
    بإزالة الرمز حتى لا يصبح تعليمة برمجية
    مضمنة في التخطيط.
  • 4:31 - 4:34
    لكن بمجرد تعبئة هذه البيانات بطريقة
    ديناميكية في قسم لاحق،
  • 4:34 - 4:35
    يجب أن تظهر مرة أخرى.
Title:
07-39 إنشاء واجهة مستخدم ذات جزأين للجهاز اللوحي
Description:

07-39 إنشاء واجهة مستخدم ذات جزأين للجهاز اللوحي

more » « less
Video Language:
English
Team:
Udacity
Project:
UD853 - Developing Android Apps
Duration:
04:36
There has been no activity on this language so far.

Arabic subtitles

Revisions Compare revisions