سؤال

التي تعتقد هي أفضل طريقة للقيام معالج مثل تطبيق (يمكن للمستخدم التنقل بين الشاشات مع القادم و زر العودة و كل الشاشة لحفظ بعض بيانات حالة) في منصة أندرويد.

أنا أساسا يمكن أن نفكر في نهجين:

  1. وجود واحد من النشاط+عرض لكل شاشة ثم جعل شاشة التبديل عن طريق استدعاء كل نشاط.ما جعل هذا الجميل هو أن أتمكن من استخدام النظام زر العودة كما ظهري معالج و لا يجب أن تأخذ الرعاية من ذلك في نفسي ، اسلو كل نشاط سيوفر خاصة انها الدولة.

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

ماذا تعتقد ؟ الذي هو أفضل وسيلة للقيام بذلك على الروبوت ؟

هل كانت مفيدة؟

المحلول

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

نصائح أخرى

لقد طورت خفيفة الوزن الروبوت المكتبة التي بنيت على أعلى من الروبوت ViewPager التي يمكن استخدامها لإنشاء معالج مثل الأنشطة.التحقق من ذلك: WizarDroid.

لقد ذهبت مع النهج الأول كما يبدو أكثر طبيعية.يستخدم تطبيق آخر ViewFlipper تبديل وجهات النظر ولكن هذا أبعد ما يكون عن أي شيء مثل المعالج.

أعتقد 2 هو أفضل.وضع كل "الصفحة" في طريقة عرض ثم بالتناوب بين عرض وإخفائها.يجعل تافهة للقيام لطيفة التحولات.ما الدولة تفكر للحفاظ على ؟ الوحيد الذي لا يعمل تلقائيا سيكون التركيز وأعتقد أنك ربما ترغب في إعادة تعيين كل مرة يمكنك التبديل بين الصفحات.كما أنها تافهة إلى الصيد مرة أخرى إذا كنت تعتقد أن هذا هو السلوك الصحيح للتطبيق الخاص بك.

مع 1 يمكنك إعادة استخدام تقريبا كافة التعليمات البرمجية الخاصة بك (فقط تحديد الخاصة بك WizardBase الدرجة) ولكن أعتقد أن الأنشطة هي أبطأ بكثير لإطلاق (و تتطلب المزيد من الذاكرة) من التبديل بين وجهات النظر.

قبل 9 سنوات هذا كان من الواضح جدا كهربائية مختلفة من الأسماك ولكن أعتقد أن أفضل طريقة للقيام بذلك الآن مع شظايا.

يكون جزء لكل صفحة في المعالج السماح لها معالجة خاصة بها حياة الدولة.

تغيير الصفحة من داخل كل جزء مع شظية.getFragmentManager() - هذا يعود FragmentManager من الوالد النشاط ، مما يتيح جزء لاستبدال نفسها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top