2017-07-25 12 views
1

Ich versuche, Conductor-Bibliothek verwenden, aber ein Problem mit Backstack. Ich habe eine Aktivität mit 4 Tasten in der unteren Navigationsleiste. Jede der Tasten in ACTIVITY öffnet 1 der 4-Controller: - heute Nachrichten (Root-Controller) - Marktnachrichten - - Nachrichten Trending regulatorischen NachrichtenBack-Stack-Handhabung in Conductor

Ich brauche alle controlers hinzuzufügen, zu Backstack und wenn i Tippen Sie auf die Schaltfläche Zurück, um zum vorherigen Controller zurückzukehren. Zum Beispiel: Heute -> Market -> Trending Wenn ich auf den Zurück-Button im Trending-Controller klicke, muss ich zu Market e.t.c. zurückkehren. Aber jetzt schließt sich die Aktivität, wenn ich in irgendeinem Controller auf die Rückseite klicke. Wie kann ich dieses Verhalten implementieren? Diese ist der Code in meiner Tätigkeit:

@Override 
public void navigateToMarketHighlights() { 
    MarketHighlightsController marketHighlightsController = new MarketHighlightsController(); 

    router.pushController(RouterTransaction.with(marketHighlightsController) 
      .popChangeHandler(new FadeChangeHandler()) 
      .pushChangeHandler(new FadeChangeHandler())); 
} 

@Override 
public void navigateToTrendingNow() { 
    TrendingNowController trendingNowController = new TrendingNowController(); 

    router.pushController(RouterTransaction.with(trendingNowController) 
      .popChangeHandler(new FadeChangeHandler()) 
      .pushChangeHandler(new FadeChangeHandler())); 
} 

@Override 
public void navigateToTodayView() { 
    TodayController todayController = new TodayController(); 

    router.pushController(RouterTransaction.with(todayController) 
      .popChangeHandler(new FadeChangeHandler()) 
      .pushChangeHandler(new FadeChangeHandler())); 
} 

@Override 
public void navigateToRegulatoryUpdatesView() { 
    RegulatoryUpdatesController regulatoryUpdatesController = new RegulatoryUpdatesController(); 
    router.pushController(RouterTransaction.with(regulatoryUpdatesController) 
      .popChangeHandler(new FadeChangeHandler()) 
      .pushChangeHandler(new FadeChangeHandler())); 
} 

Antwort

1

Ich denke, man einfach vergessen zu handhaben onBackPressed() in Ihrem Activity

router.handleBack() Umgang mit Backstack Navigation, so Router erscheint Backstack, wenn diese Methode aufgerufen und gibt true, othervise (zB backstack ist leer) es gibt false

@Override 
public void onBackPressed() { 
    if (!router.handleBack()) { 
     super.onBackPressed(); 
    } 
} 
+0

Vielen Dank! Ich hatte es in meinem Code, aber es hat nicht funktioniert. Ich habe gerade ein Studio neu gestartet und es funktioniert!) – Alex

Verwandte Themen