ورود

View Full Version : متد onresume در fragment



sh.mahdavi
جمعه 29 اردیبهشت 1396, 13:20 عصر
سلام

من با فرگمنت ها دارم کار میکنم،میخوام زمانی که کاربر از fragment1 به fragment2 میره بعد بازدن دکمه بازگشت به fragment1 بر میگرده یه کاری رو انجام بدم، دقیقا همین کارو در activvityها با چرخه حیات ها انجام کیدم و از onresume استفاده میکنم، حالا در fragmentها این کار چطوری انجام میشه؟ درحالی که متد onresume در fragmentها موجود هست و فقط زمانی که fragment ساخته میشه این متد صدا زده میشه، اما زمانیه که کاربر از fragment1 به fragment2 میره و برمیگرده این متد صدا زده نمیشه!
لطفا کمک کنید.
ممنون

بهزاد اندیشمند
شنبه 30 اردیبهشت 1396, 18:20 عصر
سلام

من با فرگمنت ها دارم کار میکنم،میخوام زمانی که کاربر از fragment1 به fragment2 میره بعد بازدن دکمه بازگشت به fragment1 بر میگرده یه کاری رو انجام بدم، دقیقا همین کارو در activvityها با چرخه حیات ها انجام کیدم و از onresume استفاده میکنم، حالا در fragmentها این کار چطوری انجام میشه؟ درحالی که متد onresume در fragmentها موجود هست و فقط زمانی که fragment ساخته میشه این متد صدا زده میشه، اما زمانیه که کاربر از fragment1 به fragment2 میره و برمیگرده این متد صدا زده نمیشه!
لطفا کمک کنید.
ممنون

فرگمنت فقط موقعی که برای اولین بار به UI اضافه میشه متدonResume() اون صدا زده میشه . و وقتی از یه فرگمنت به فرگمنت دیگه برین pause نمیشه . تنها موقعی pause میشه که دکمه Home بزنید یا مثلا تماسی دریافت بشه (در کل موقعی که برنامه تون به BackStack میره) .

برای اینکار شما باید از onBackPressed () استفاده کنید
نکته : این متد درون فرگمنت غیر قابل استفاده هست فقط درون Activity که فرگمنت های شما زیرمجموعه اون هستن قابل استفاده هست.


@Override
public void onBackPressed() {
int count = getFragmentManager().getBackStackEntryCount();
switch(count){
case 0:
super.onBackPressed();
break;
case 1:
// دکمه برگشت فرگمنت اول
break;
case 2:
//دکمه برگشت فرگمنت دوم
break;
default:
getFragmentManager().popBackStack();
break;
}
}