-
من خلال العمل بالمعرفة التي
تعلمناها حول تجاوز الموارد
-
في المجلدات الأخرى،
-
سنتنقل عبر التعليمة البرمجية معا حول كيفية
إنشاء واجهة مستخدم ذات جزأين للكمبيوتر اللوحي.
-
أولاً، قم بإزالة مجلد القيم W820dp
لأننا لسنا بحاجة إلى تقديم
-
منطق محدد عندما يكون الاتجاه الحالي
أكبر من 820dp.
-
ثم المضي قدمًا وإجراء
تغييرات تخطيط XML.
-
ثم قم بإنشاء مجلد جديد تخطيط لـ SW 600dp.
-
ثم أضف ملفًا جديدًا يسمى activity_main.
-
نستخدم نفس اسم الملف كما هو موجود
في مجلد التخطيط الأساسي activity_main
-
بحيث يتجاوز اسم الملف السلوك
على أجهزة الكمبيوتر اللوحية بشكل خاص.
-
لمعرفة التعليمة البرمجية لهذا الملف
يمكنك التحقق من الخلاصة أدناه.
-
بشكل أساسي، هي عبارة عن تخطيط خطي أفقي
التي يمكنها الاحتفاظ بجزء تنبؤات
-
على اليسار وجزء تفاصيل على اليمين.
-
هذا هو الوقت المناسب للحديث عن
الأجزاء الديناميكية للعبارات الثابتة.
-
في تطبيقنا، جزء التنبؤات
هو الجزء الثابت لأننا
-
حددناه في تخطيط XML بغض النظر عن
الاتجاه أو حجم الجهاز،
-
ونحن نعلم بأننا سنحتاج إلى
جزء تنبؤ في النشاط الأساسي.
-
من ناحية أخرى، لا نعلن سوى عن حاوية
لجزء التفاصيل، ولكن
-
ليس الجزء الفعلي.
-
تمت تهيئته بوسيطات مختلفة
في كل مرة على أنه
-
جزء ديناميكي، لكن من الأفضل
إنشاء هذا الجزء وإضافته
-
في عملية جزء في تعليمة Java
البرمجية في النشاط الأساسي.
-
بهذه الطريقة، يمكن لـ Fragment Manager
تعقب وسيطات التهيئة هذه
-
وتمريرها إلينا، بعد استدارة الجهاز.
-
عندئذٍ نحتاج إلى تحديث تخطيطات
واجهة المستخدم ذات الجزء الواحد
-
بحيث تتسق مع الحالة ذات الجزأين.
-
حتى في الملف الرئيسي للنشاط الخاص بمجلد
التخطيط الأساسي، يُستخدم هذا ليكون
-
تخطيط إطار سوف نعلن عنه كجزء تنبؤ.
-
بهذه الطريقة سوف يتناسب مع
واجهة المستخدم ذات الجزأين،
-
حيث تم الإعلان عنها كجزء في XML.
-
بهذه الطريقة، النشاط الرئيسي ليس لديه ما
يدعو للقلق أبدًا حول إضافة
-
جزء التبؤ بطريقة ديناميكية.
-
في طريقة OnCreateView للنشاط الرئيسي.
-
منذ أن كان الجزء داخل هذا التخطيط بالفعل،
فيمكننا إزالة هذا فقط،
-
ولذلك لا يمكننا إضافته مرة
أخرى بطريقة ديناميكية.
-
وبالمثل نقوم بتعديل تخطيط تفاصيل
النشاط في مجلد التخطيط الأساسي،
-
كما نقوم بتغيير معرف تخطيط الإطار
ليكون حاوية لتفاصيل الطقس.
-
ولهذا يطابق معرف طريقة عرض الحاوية
في حالة واجهة المستخدم ذات الجزأين.
-
النمط هنا هو أن جزء التفاصيل
سيتم إضافته إلى
-
حاوية تسمى weatherdetailcontainer،
-
في الحالة ذات الجزأين وذات الجزء الواحد
على حدٍ سواء.
-
نظرًا لأننا قمنا بتغيير
اسم الحاوية،
-
يجب علينا أيضًا تحديث نشاط التفاصيل.
-
لا يُستخدم هذا إلا في وضع الجزء الواحد.
-
هنا حيث قمنا بتغيير اسم الحاوية.
-
في وضع الجزء الواحد، سيضيف النشاط
المفصّل جزء التفاصيل
-
إلى هذه الحاوية بطريقة ديناميكية.
-
بعد تعديل التخطيط، يجب علينا
تحديث النشاط الرئيسي
-
لكي نضيف جزء التفاصيل بطريقة ديناميكية.
-
في طريقة OnCreate للنشاط الرئيسي،
نتحقق من وجود حاوية
-
تفاصيل الطقس في التخطيط لمعرفة هل هذه
واجهة مستخدم ذات جزأين أم لا.
-
نتعقب هذه المعلومات في منطقيةٍ
تسمى mTwoPane.
-
تذكر أننا نبدأ بالحرف m،
لأنه متغير خاص بالعضو.
-
في هذه الحالة، يجب أن تكون المنطقية صحيحة.
-
لذلك نمضي قدمًا ونقوم بإنشاء
جزء تفاصيل جديد،
-
وإضافته إلى weatherdetailcontainer.
-
ونلتزم بالتغيير عن طريق استخدام
عملية جزء،
-
والتي أدخلت رادو مسبقًا.
-
ومن ناحية أخرى، إذا لم تكن حاوية التفاصيل
موجودة في التخطيط، ثم يجب
-
أن تكون المنطقية زائفة، فهذا يعني أن هذه
هي واجهة مستخدم ذات جزء واحد للهواتف.
-
في هذه الحالة، سيتعامل نشاط التفاصيل
مع توضيح جزء التفاصيل.
-
تُلاحظ أن الحالة ذات الجزأين التي تحققنا
منها إذا كانت حزمة الحالة
-
الفورية المحفوظة فارغة.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-