PDA

View Full Version : طریقه هندل دکمه بازگشت در فرگمنت چطوریه؟



gilas1368
سه شنبه 04 فروردین 1394, 20:08 عصر
سلام به همگی
من ی اکتیویتی دارم ک داخلش ی FrameLayout هستش
و داخل اون متناسب با عملی ک کاربر انجام میده ی Fragment رو Load میکنم
حالا میخوام توی هر Fragmentای ک بودم و دکمه بازگشت رو زدم
ب صفحه قبلش برگردم
کسی میدونه این کارو چطوری میشه انجام داد؟
خودم گشتم اما چیزی حالیم نشد


ممنون میشم اگ کسی اطلاعاتی در این زمینه داره برام بذاره

#root#
سه شنبه 04 فروردین 1394, 20:26 عصر
موقع جایگزینی Fragment جدید از این متد استفاده کنید (البته خیلی وقت پیش استفاده کردم جزپیاتش خاطرم نیست)
fragmentTransaction.addToBackStack(null);

gilas1368
سه شنبه 04 فروردین 1394, 21:35 عصر
موقع جایگزینی Fragment جدید از این متد استفاده کنید (البته خیلی وقت پیش استفاده کردم جزپیاتش خاطرم نیست)
fragmentTransaction.addToBackStack(null);

دوست خوبم این میدونم
بذارید یکم بهتر توضیح بدم
من میخوام وقتی دکمه back رو زدم از فرگمنت 2 ب فرگمنت 1 برم

eai-eiliya
سه شنبه 04 فروردین 1394, 22:29 عصر
یکی از کارای مشکل از نظر من توی اندروید هندل کردن دکمه back هست ، که این دکمه توی ios وجود نداره و کارشون خیلی راحت هست .
تمیز ترین کاری که میتونی بکنی اینه که اول از همه یک نقشه از روند صفحات و صفحه خانه داشته باشی که بدونی می خوای چکار کنی و بعدش اون هارو هندل کنی
مثلا فرض کن 3 فرگمنت داری
loginFragment - userFragment - homeFragment
خوب قبل اینکه بخوای فرگمنت رو سوییچ کنی باید اول بفهمی چه فرگمنتی در حال حاضر درحال نمایش هست ، که با getSupportFragment.getFragmentById و دادن id همان viewHolder که فرگمنت هارو در اون replace می کنی فرگمنت موجود رو بگیری و بعدی اول null نبودن رو چک کنی (در صورتی که قبلا فرگمنتی داخلش نباشد نال می شود)
سپس با استفاده از instanceOf نوع فرگمنت رو بگیری
مثلا
if (fragment instanceOf userFragment)
و بعد بقیه کار ها

خوب این روش تمیزی هست اما کمی وقت میگیره .

storm_saeed
سه شنبه 04 فروردین 1394, 22:58 عصر
دوست خوبم این میدونم
بذارید یکم بهتر توضیح بدم
من میخوام وقتی دکمه back رو زدم از فرگمنت 2 ب فرگمنت 1 برم

فرگمنت ها رو تو استک بریزید وقتی بک رو زد pop اشون کنید یه همچین چیزی میشه




if getFragmentManager().getBackStackEntryCount()== 0) {
super.onBackPressed();
} else {
getFragmentManager().popBackStack();
}

gilas1368
سه شنبه 04 فروردین 1394, 23:41 عصر
یکی از کارای مشکل از نظر من توی اندروید هندل کردن دکمه back هست ، که این دکمه توی ios وجود نداره و کارشون خیلی راحت هست .
تمیز ترین کاری که میتونی بکنی اینه که اول از همه یک نقشه از روند صفحات و صفحه خانه داشته باشی که بدونی می خوای چکار کنی و بعدش اون هارو هندل کنی
مثلا فرض کن 3 فرگمنت داری
loginFragment - userFragment - homeFragment
خوب قبل اینکه بخوای فرگمنت رو سوییچ کنی باید اول بفهمی چه فرگمنتی در حال حاضر درحال نمایش هست ، که با getSupportFragment.getFragmentById و دادن id همان viewHolder که فرگمنت هارو در اون replace می کنی فرگمنت موجود رو بگیری و بعدی اول null نبودن رو چک کنی (در صورتی که قبلا فرگمنتی داخلش نباشد نال می شود)
سپس با استفاده از instanceOf نوع فرگمنت رو بگیری
مثلا
if (fragment instanceOf userFragment)
و بعد بقیه کار ها

خوب این روش تمیزی هست اما کمی وقت میگیره .

عالی بود دوست خوبم
ممنونم