-
Title:
Build 2-Pane Tablet UI
-
Description:
-
من خلال ما تعلمناه حول
كيفية تجاوز المصادر
-
،في المجلدات الأخرى
-
سننتقل سويًا لمعرفة
.كيفية بناء واجهة مستخدم كمبيوتر لوحي من جزأين
-
،أولاً، نزيل مجلد values-W820dp
فلسنا بحاجة إلى تقديم منطق محدد
-
عندما يكون الاتجاه الحالي
.أكبر من 820dp
-
ثم ننتقل
.وننفذ تغييرات تخطيط XML
-
ثم ننشئ مجلد
.تخطيط SW 600dp جديد
-
ثم نضيف ملفًا جديدًا
.باسم activity_main
-
نستخدم نفس اسم الملف
،الموجود في مجلد التخطيط الأساسي activity_main
-
بحيث يتجاوز اسم الملف
.السلوك المتبع على الكمبيوتر اللوحي بشكل خاص
-
لرؤية التعليمات البرمجية لهذا الملف
.يمكننا التحقق من الخلاصة أدناه
-
هذا الملف في الأساس عبارة عن تخطيط خطي أفقي
يمكنه أن يتضمن جزء التنبؤ
-
على الجانب الأيسر
.وتجزئة detail على الجانب الأيمن
-
الآن، حان وقت الحديث عن
.الأجزاء الديناميكية للعبارات الثابتة
-
في تطبيقاتنا، يكون جزء التنبؤ
هو الجزء الثابت لقيامنا
-
،بتعريفه في تخطيط XML
،بصرف النظر عن الاتجاه أو حجم الجهاز
-
فنحن نعلم أننا سنحتاج إلى
.جزء التنبؤ في النشاط الرئيسي
-
ومن ناحية أخرى، نعلن
،تخصيص حاوية فقط لتجزئة detail
-
.وليس للجزء الفعلي
-
يتم تهيئته بوسيطات
مختلفة وفي كل مرة كجزء
-
ديناميكي، لذلك يفضل
إنشاء وإضافة هذا الجزء بشكل ديناميكي
-
إلى عملية التجزئة
.باستخدام تعليمات Java البرمجية الخاصة بالنشاط الأساسي
-
بهذه الطريقة، يمكن لإدارة التجزئة
تتبع وسيطات التهيئة تلك
-
وإعادتها إلينا
.بعد استدارة الجهاز
-
بعد ذلك نحتاج إلى تحديث
تخطيطات واجهة المستخدم ذات الجزء الواحد
-
بحيث تتسق
.مع الحالة المكونة من جزأين
-
ففي الملف الرئيسي للنشاط
الخاص بمجلد التخطيط الأساسي، يُستخدم هذا كتخطيط إطار
-
سوف نعلن عنه
.كجزء تنبؤ
-
،بهذه الطريقة سيتطابق مع واجهة المستخدم المكونة من جزأين
-
حيث يتم الإعلان عنه أيضًا
.كجزء في XML
-
وبهذه الطريقة، لن يواجه النشاط الرئيسي
أي مشكلة في إضافة
-
.جزء تنبؤ بشكل ديناميكي
-
،في النشاط الأساسي
.أسلوب العرض create
-
حيث أن الجزء موجود بالفعل
داخل هذا التخطيط، فيمكننا إزالة هذا فقط
-
.حتى لا نضيفه مرة أخرى بشكل ديناميكي
-
بالمثل، نقوم بتعديل تخطيط
،تفاصيل النشاط في مجلد التخطيط الأساسي
-
كما نقوم بتغيير معرف تخطيط الإطار
.ليكون حاوية لتفاصيل الطقس
-
وبذلك يطابق معرف طريقة عرض
.الحاوية في حالة واجهة المستخدم المكونة من جزأين
-
النمط المتبع هنا هو إضافة
جزء detail بصفة دائمة
-
إلى حاوية تسمى
،weather_detail_container
-
.في حالة واجهة المستخدم المكونة من جزأين ومن جزء
-
نظراً لقيامنا بتغيير اسم
،الحاوية
-
يجب علينا أيضا تحديث
.نشاط detail
-
.هذا يسُتخدم فقط في وضع الجزء الواحد
-
نقوم هنا بتغيير
.اسم الحاوية
-
في وضع الجزء الواحد، سيقوم
النشاط المفصل بإضافة جزء detail
-
.بشكل ديناميكي إلى هذه الحاوية
-
بعد قيامنا بتعديل التخطيط، يجب علينا تحديث
النشاط الرئيسي
-
.لكي نضيف جزء detail بشكل ديناميكي
-
،وفي أسلوب on create للنشاط الرئيسي
نتحقق من وجود حاوية detail
-
الطقس داخل التخطيط
.لمعرفة ما إذا كانت واجهة المستخدم مكونة من جزأين أم لا
-
ثم نتعقب هذه المعلومات
.من خلال قاعدة منطقية تسمى mTwoPane
-
،علينا أن نتذكر أننا بدأنا بالحرف m
.لكونه متغيرًا خاصًا بالعضو
-
،في هذه الحالة
.يجب أن تكون القاعدة المنطقية صحيحة
-
فلنذهب
وننشئ جزء تفاصيل جديد
-
.ثم نضيفه إلى weather_detail_container
-
ثم نثبت التغيير باستخدام
عملية التجزئة
-
.التي سبق وشرحها لنا Rado
-
في حالة عدم وجود حاوية التفاصيل
في التخطيط
-
فهذا يدل على أن القاعدة المنطقية خطأ
.مما يعني أن هذه واجهة مستخدم من جزء واحد خاصة بالهواتف
-
في هذه الحالة، سيتولى نشاط detail
.توضيح جزء detail
-
نلاحظ في حالة الواجهة المكونة من جزأين
أهمية التحقق من فراغ حزمة الحالة الفورية المحفوظة
-
.
-
إذا لم تكن حزمة الحالة الفورية
المحفوظة فارغة
-
،فلا ننشئ واحدة جديدة
.والسبب في ذلك كما يلي
-
.إذا فرضنا أننا نريد إدارة الجهاز
-
قبل تدمير
-
النشاط والأجزاء، فإننا
.نحفظ المعلومات في حزم حالة الحفظ
-
،ثم بعد تغيير الاتجاه
يستعيد النظام النشاط
-
والأجزاء
،عن طريق تمرير نفس الحزمة
-
بحيث يمكن إعادة إنشائهم
.بواسطة الحالة ذاتها
-
هذا يعني أنه في حالة وجود الحزمة
يجب ترك النظام يتولى
-
استعادة جزء detail
.ويمكننا تخطي هذه التعليمات البرمجية
-
عند إضافة جزء تفاصيل
.بشكل ديناميكي
-
اجعلوه يعرض البيانات النائبة
.بغرض الاختبار فقط
-
،لاحقًا، سنتعمق في المنطق الأيمن
لنجعله يعرض
-
المعلومات المناسبة
.للتاريخ المحدد على الجانب الأيسر
-
عدلوا جزء detail
-
بحيث لا يتوقع احتواء الهدف الوارد
.على بيانات URI
-
،وفي هذه الحالة
سيتراجع جزء detail
-
إلى بيانات نائبة
.موجودة لدينا في ملفات XML
-
قد يرجع السبب في فراغ الهدف
إلى وجود جزء detail
-
.حاليًا في النشاط الرئيسي
-
لا يتم بدء النشاط الرئيسي
مع معرف URI
-
لتاريخ واحد فقط
.كالذي يبدأ به النشاط عادة
-
هكذا سيبدو التطبيق
-
بمجرد الانتهاء من التغييرات
.المرتبطة بالأطر السلكية
-
يرجع السبب في عدم
ظهور التعليمات البرمجية هنا
-
إلى عدم قيامنا بتضمين
.التعليمات البرمجية في التخطيط
-
ولكن بمجرد ملء هذه
البيانات ديناميكيًا في المقطع اللاحق
-
.فستظهر التعليمات البرمجية مجددًا