آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

طبقه بندی موضوعی

۱۵ مطلب با موضوع «آموزش اندروید :: فرگمنت» ثبت شده است

قبلا برای مدیریت onBackPressed در فرگمنت از روش سنتی استفاده میکردیم! بدین صورت که در اکتیویتی اصلی که host فرگمنت هست، فرگمنت فعلی رو میگرفتیم و بررسی میکردیم کدوم فرگمنت هست و با توجه به آن، دکمه بک مدیریت میشد.

۰ نظر موافقین ۰ مخالفین ۰ ۰۴ آذر ۹۹ ، ۰۹:۲۸
میم دال

نویگیشن کامپوننت که یکی از زیر مجموعه های لایبرری Jetpack به شمار میره، برای این به وجود اومده که کار با فرگمنت ها رو ساده کنه. عمدتا از نویگیشن کامپوننت در اپ های single activity استفاده میشه.

۰ نظر موافقین ۰ مخالفین ۰ ۳۰ آبان ۹۹ ، ۰۴:۵۹
میم دال

توی کدوم یک از این متدها باید لاجیک کد (یعنی initialize و بقیه موارد) رو انجام داد؟

 

اینجا میگه توی onCreateView فقط ویو inflate شود و در onViewCreated لاجیک کد رو بنویسیم. دلیلشم اینه که میگه ممکنه توی متد onCreateView هنوز ویو آماده نشده باشه و ممکنه اپ کرش کنه.

ولی توی متد onViewCreated که بلافاصله بعد onCreateView اجرا میشه، مطمئنیم که ویو آماده هست. بنظر من منطقیه. مضاف بر اینکه خود سایت وزین اندروید هم این نظر رو دارن که اینجا نوشته.

۰ نظر موافقین ۰ مخالفین ۰ ۲۹ آبان ۹۹ ، ۱۲:۵۰
میم دال

اگر یک نویگیشن به این صورت داشته باشیم:

 

A > B > C > A

 

برای پیاده سازی این بهتره به addToBackstack یک استرینگ به عنوان اسم بدهیم و پس از فرگمنت C توسط popBackStack فرگمنت A را پاپ کنیم.

 

توضیح بیشتر اینجا

۰ نظر موافقین ۰ مخالفین ۰ ۲۵ آبان ۹۹ ، ۲۰:۵۶
میم دال

مشکلی که توی اپ بلاگ داشتم این بود که اگر کاربر بیشتر از یک بار روی فرگمنت میزد، همه دفعات در استک ثبت میشد و اگر بک رو میزدیم به همون تعداد پاپ میشد که خب زیاد جالب نیست!

 

۰ نظر موافقین ۰ مخالفین ۰ ۲۵ آبان ۹۹ ، ۲۰:۲۶
میم دال

متد popBackStack اوور لودهای زیر را دارد:

 

popBackStack(int, int)

popBackStack(String, int)

۰ نظر موافقین ۰ مخالفین ۰ ۲۵ آبان ۹۹ ، ۱۲:۵۲
میم دال

در حالت پیش فرض بک استک فقط برای اکتیویتی وجود داره و فرگمنتها بک استک ندارن. برای استفاده از بک استک فرگمنت باید اون رو توی کد فعال کنیم.

 

۰ نظر موافقین ۰ مخالفین ۰ ۲۵ آبان ۹۹ ، ۱۰:۵۲
میم دال

بدین صورت:

 

 

 Fragment currentFragment = getFragmentManager().findFragmentById(R.id.fragContainer);
 if (currentFragment instanceof F1) {
       //do your stuff here
 }

fragContainer همون لیوتی هست که فرگمنت داخل اون لود میشه.

F1 فرگمنت مورد نظر.

 

اینو برای مدیریت دکمه بک در پروژه بلاگ کشف کردم! برای اینکه اگر توی فرگمنتای دیگه بود به فرگمنت Home بره و اگر توی فرگمنت Home بود از اپ بره بیرون. این قسمت توی onBackpressed نوشته میشه.

۰ نظر موافقین ۰ مخالفین ۰ ۲۱ آبان ۹۹ ، ۰۴:۴۳
میم دال

برای ارسال دیتا "از فرگمنت" "به اکتیویتی" دو تا راه وجود داره:

 

1. راه بد و آسان:

فراخونی اکتیویتی توسط getActivity و صدا کردن ویوی مورد نظر (مثلا تکست ویو) و نوشتن اطلاعات در آن. در این حالت ویو حتما باید پابلیک باشد.

 

2. راه خوب همراه با کمی چالش:

استفاده از اینترفیس در حالی که اکتیویتی آن را پیاده سازی کرده باشد.

 

۰ نظر موافقین ۰ مخالفین ۰ ۱۶ آبان ۹۹ ، ۰۲:۳۹
میم دال

این لینک خیلی خیلی خیلی خوبه.

همه چیو در مورد فرگمنت گفته. لایف سایکل، متدهای فرگمنت منیجر و اینا

حتما برای مرور دوباره بخون.

لینک

۰ نظر موافقین ۰ مخالفین ۰ ۱۸ اسفند ۹۸ ، ۰۳:۳۹
میم دال