gpt4 book ai didi

android - Conductor 中的返回堆栈处理

转载 作者:搜寻专家 更新时间:2023-11-01 09:33:28 24 4
gpt4 key购买 nike

我尝试使用 Conductor 库,但遇到了后台堆栈问题。我在底部导航面板中有一个带有 4 个按钮的 Activity 。ACTIVITY 中的每个按钮都会打开 4 个 Controller 中的一个:- 今日新闻(根 Controller )- 热门新闻- 市场消息- 监管新闻

我需要将所有 Controller 添加到后退堆栈,当我点击后退按钮时,我必须返回到之前的 Controller 。例如:今天 -> 市场 -> 趋势如果我点击 Trending Controller 中的后退按钮,我必须返回到 Market 等。但是现在当我点击任何 Controller 的背面时, Activity 正在关闭。我该如何实现这种行为?这是我 Activity 中的代码:

    @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()));
}

最佳答案

我猜你只是忘了在你的 Activity 中处理 onBackPressed()

router.handleBack() 处理返回堆栈导航,因此如果调用此方法并返回 true,路由器将弹出返回堆栈,否则(例如返回堆栈为空)返回

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

关于android - Conductor 中的返回堆栈处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45296651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com