Das Fragment wurde nicht angebracht noch?
Unten ist mein code. Was ich erreichen will ist, dass ich die Anzeige viewholder in meinem Recycler anzeigen. Innenansicht pager-ich bin zum anzeigen eines fragment und streichen Sie nach Links, ich bin die Anzeige von einem anderen fragment. Aber wenn ich die app starte. App zum Absturz zu bringen.Weiß nicht, wohin ich gehe falsch. Ich denke, es ist eine, wo in fragment-Konzept. Bitte helfen Sie mir
@Override
public void onBindViewHolder(ManageCustomerViewHolder holder, int position)
{
holder.viewPager.setAdapter(new MyPageAdapter(fragmentManager, fragments));
}
private List<Fragment> getFragments()
{
List<Fragment> fList = new ArrayList<Fragment>();
fList.add(MyFragment.newInstance("Fragment 1"));
fList.add(Myfragment1.newInstance("Fragment 2"));
return fList;
}
public class ManageCustomerViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener
{
ViewPager viewPager;
viewPager = (ViewPager) itemView.findViewById(R.id.viewpager);
itemView.setOnClickListener(this);
}
Dies ist, was der Fehler ist :
java.lang.IllegalStateException: Fragment wurde nicht angebracht noch.
- Kannst du posten, wo
getFragments()
aufgerufen wird?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich Stand vor dem gleichen Problem in meiner app.
Stack Trace:
Die app stürzt ab bei dieser Linie:
Dies geschieht, wenn das fragment ist nicht mehr an seinen übergeordneten activity/fragment. So eine einfache
isAdded()
überprüfen sollte, beheben Sie dieses Problem für Sie.Update:
Vom Dokumentation:
isAdded() - gibt true Zurück, wenn das fragment wird derzeit Hinzugefügt, um seine Aktivität.
Update der Bibliothek Unterstützt Revision 27.0.2 um das problem zu lösen. Sehen changelog.
Ich mit Ausnahme heute. Nach der Suche nach der Antwort habe ich gemerkt, dass alle im Zusammenhang mit ViewPager und getFragmentManger() oder in meinem Fall getChildFragmentManager().
Gut manchmal diese Dinge passieren, wenn es keine fragment-so kann nichts befestigt werden oder angezeigt werden. Also, wenn mein fragment wurde erstellt, die ich nun speichern Sie in einer Variablen an den fragment-manager verwende ich dann, dass manager in mein Viewpager-Instanz, so wird es immer sein ein manager gespeichert in der Klasse.
Um zu verdeutlichen, was ich hier sage, ist mein code:
Bevor
Hier Stand ich vor der Fehler, da ich neu die Ansicht mit einer bestimmten Methode habe ich auch gedrückt halten der zurück-Taste. Also, wenn das passiert ist, Android ist auf der Suche nach einem getChildFragmentManager() aus einem Fragment, das nicht mehr vorhanden oder verschwunden ist (weil ich gedrückt halten der zurück-Taste)
Nun
und wenn ich Anrufe, Viewpager ich, dass manager
Ich habe nicht vor, die Ausnahme wieder so, es war, weil mein fragment hatte verschwunden, wenn ich wieder gedrückt und es gab keine getChildFragmentManager() aufrufen, um
Sollten Sie sich nicht zu instanziieren versucht, Fragmente. Fragmente sind erstellt und haben Lebenszyklen, die durch gesteuert werden das Android-system. Sie reagieren auf lifecycle-events durch überschreiben von callback-Methoden, wie
onAttached
(wird aufgerufen, wenn das fragment an seinemActivity
)