بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

راهنمایی درباره فرگمنت ها

مدیریت گفتگو
یاسر  10 سال پیش
آخرین تغییر: 10 سال پیش

سلام

فرض کنید ما دوتا فرگمنت داریم با نام های (A,B) و به محض اجرای برنامه فرگمنت A اجرا میشه و روی صفحه نشون داده میشه، حالا با استفاده از یک دکمه فرگمنت B رو هم اجرا میکنیم و روی صفحه قرار میگیره (A مخفی میشه)

حالا اگه گوشی رو روی حالت landscape قرار بدیم (یعنی کج کنیم) برنامه از وضعیت فعلی خارج میشه و دوباره فرگمنت A نمایش داده میشه ! (A > B > A)

چطوری میشه وضعیت فعلی رو حفظ کرد ؟

ببخشید که سوال طولانی شد

نظرات

Amir 10 سال پیش
همچین مشکلی برای من پیش نیومده ولی اگه از فرگمنت استاتیک استفاده می کنید این بار از داینامیک استفاده کنید و با متد replace فرگمنت ها رو عوض کنید احتمالا حل بشه.
زمانی که گوشی رو میبرید به حالت لنداسکیپ متد onCreate دوباره اجرا میشه و فرگمنت ها هم دوباره از اول اجرا میشن. شما همیشه اخرین فرگمنتت رو یه جایی داشته باش. مثلا یه متغیر داشته باش اول توش نوشته a بعد که رفتی توی فرگمنت B توش بنویس b. حالا توی اکتیویتیت متد onSavedInstance رو اورراید کن. توش مقدار این متغیرت رو ذخیره کنه. حالا اول متد onCreate بیا ورودی savedInstanseState رو چک کن اگ null نبود مقدار متغیر رو از توش در بیار و با توجه به اون فرگمنت رو ست کن. البته از متد onRestoreInstanceState هم میتونی استفاده کنی. لینک
یاسر  10 سال پیش
تشکر از دوستان عزیز مخصوصا آقای کریمی، تا حد زیادی مشکلم رفع شد.

هنوز پاسخی ثبت نشده است


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .