0

So sieht meine "App" im Moment aus: http://imgur.com/a/dFeLT Ich versuche, die beiden Spinner zu synchronisieren, so dass, wenn ich ein Element auf der ersten Registerkarte auswähle auf der zweiten Registerkarte ausgewählt werden.Synchronisieren von Spinner über zwei Fragmente mit ViewPager/TabLayout

Ich versuchte Kommunikation über Schnittstelle und Aktualisieren der Drehfeldansichten während onCreateView auf den spezifischen Fragmenten, aber da die Ansichten bereits erstellt werden, bevor das Fragment sichtbar ist, ändert sich nichts.

Es wurde auch versucht, das ausgewählte Element des Drehfelds zu aktualisieren, wenn das Fragment durch Überschreiben von setUserVisibleHint sichtbar wird, aber es sieht überhaupt nicht gut aus, da zwischen dem Swipe und der Aktualisierung des Drehfelds eine Verzögerung besteht.

Ist es möglich, die beiden Spinner so zu synchronisieren, dass der Gegenstand im Spinner von Fragment 2 bereits gesetzt ist, wenn ich von Fragment 1 wische? Sollte in beide Richtungen funktionieren.

Prost

Antwort

0

Sie setArguments und getArguments, um Daten zu erhalten, bevor das Aufblasen Fragment verwenden können. Hier

ist Beispielcode:

Geordnete Klasse:

Bundle bundle = new Bundle(); 
fragment1 = new Fragment1(); 
bundle.putString("key1","messageContent"); 
fragment1.setArguments(bundle); 

Fragment Klasse:

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup 
container, @Nullable Bundle savedInstanceState) { 
    String x; 
    Bundle bundle = new Bundle(); 
    bundle = getArguments(); 
    x= bundle.getString("key1"); 
    return super.onCreateView(inflater, container, savedInstanceState); 
} 
+0

die Daten von Fragment zu Fragment Kommunikation ist nicht mein Problem, es ist mehr die Tatsache, wie man Aktualisiere die Spinner der anderen Fragmente ohne merkbare Verzögerung. setUserVisibleHint/getUserVisibleHint ist wirklich nervtötend, weil Sie das neue Fragment bereits nach dem Wischen sehen können, bevor es wahr zurückgibt. OnCreate/onCreateView kann auch nicht verwendet werden, da Fragmente nur einmal und nicht jedes Mal, wenn ich wische, aufgebläht werden. –

Verwandte Themen