Фрагментът "onCreate", "onCreateView" се извиква преди "OnCreate" на Actvity, когато е обявено в XML оформление за активност.
Това е нормално? Мога ли да разработя код въз основа на по-горе жизнения цикъл.
//Fragment declared in activity xml
<fragment android:name="screenfragments.SearchableFragment"
android:id="@+id/searchable_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Благодаря
Отговори:
0 за отговор № 1Да, можете да имате това, което имате. Но имайте предвид, че когато декларирате фрагмента в xml оформлението, фрагментът винаги ще присъства и не можете да го премахнете или да го замените динамично.
Това е донякъде в противоречие с целта на фрагменти, които са проектирани да бъдат компоненти, които не могат да се използват повторно, без да са свързани с дейността. В случай, че сте споменали, Фрагментът е свързан с Дейността.
Заключително, принципът на дизайна, който използвате, не е нормален, но ще работи и вие можете да проектирате около него.
0 за отговор № 2
Това странно подреждане на събитията от жизнения цикъл е резултатот вашия фрагмент се обявява в XML на дейността, а не в кода.Можете да създадете фрагмента и да я добавите към активността в стъпката onCreateView на дейността, за да можете да се уверите, че фрагментът "onCreate се нарича след дейността" с.
Виж: http://developer.android.com/training/basics/fragments/fragment-ui.html#AddAtRuntime