Middle
რა განსხვავებაა add და replace მეთოდებს შორის?
sobes.tech AI
პასუხი AI-სგან
ფრაგმენტებთან მუშაობისას add და replace მეთოდებს შორის განსხვავება შემდეგია:
add: ახალი ფრაგმენტი დამატებულია არსებული ზედა. წინა ფრაგმენტები რჩება ბექსტეკში (თუ გამოიძახაaddToBackStack) და მათი სიცოცხლის ციკლი შეჩერებულია (PAUSED).replace: წაშლის წინა ფრაგმენტს კონტეინერიდან და დამატებს ახალს მის ადგილზე. თუ წინა ფრაგმენტი იყო ბექსტეკში, ის კვლავ იქ იქნება და დაბრუნებისას კვლავ შექმნილი იქნება.
add-ის გამოყენების მაგალითი:
supportFragmentManager.beginTransaction()
.add(R.id.fragment_container, NewFragment())
.addToBackStack(null)
.commit()
replace-ის გამოყენების მაგალითი:
supportFragmentManager.beginTransaction()
.replace(R.id.fragment_container, NewFragment())
.addToBackStack(null)
.commit()
ძირითადი განსხვავებები შეიძლება მოკლედ იყოს მოცემული შემდეგი ცხრილში:
| თვისება | add | replace |
|---|---|---|
| ხილვადობა | ახალი ფრაგმენტი გადაფარავს ძველს | ახალი ფრაგმენტი შეცვლის ძველს |
| წინა მდგომარეობა | შეჩერებულია (PAUSED) |
ამოღებულია კონტეინერიდან, დაბრუნებისას კვლავ შექმნილი იქნება |
| უკან დაბრუნების სტეკი | წინა ფრაგმენტი რჩება სტეკში | წინა ფრაგმენტი ამოღებულია კონტეინერიდან, მაგრამ შეიძლება იყოს სტეკში |
| შესრულებადობა | ნაკლებად ეფექტური შეიძლება იყოს ბევრი ფრაგმენტით | ჩვეულებრივ უფრო ეფექტურია ხშირი ცვლილებებით |