Как уже упоминали Том и другие, есть способы поместить тег на фрагмент и использовать этот тег для идентификации. Следующая проблема, с которой я столкнулся, заключается в том, что фрагмент не получает тег, пока не будет связан с Activity (или, собственно, FragmentManager
). Что делать, если необходимо определить фрагмент до того, как он будет помечен?
Мои решения до сих пор основаны на самом старом (Java) трюке в мире: создайте минималистичный фрагмент шаблона, который получает идентификатор в одном из своих конструкторов и предоставляет метод getFragmentId()
, который возвращает этот идентификатор. Затем я позволю тем фрагментам, которые нуждаются в ранней идентификации, расширить этот шаблон и; вуаля! Проблема решена.
Для этого решения, к сожалению, может потребоваться набор фрагментов шаблона, по одному для каждого типа фрагмента, ListFragment
, DialogFragment
или простой старый Fragment
(POFO ?!), которые требуют ранней идентификации. Но это возможно в случае фрагментов, я думаю, учитывая предоставленную прибыль.
Извините за разрывание заживающих ран: -)
Ура!