我有一个带2个标签和1个详细信息页面的Ionic 4小应用程序。我在这里面临的问题是,如果我从Tab2进入“详细信息页面”,然后从那里ion-back-button返回,它将始终将我重定向到Tab1,而不是以前的Tab2。
这是我的示例:
Tab2 HTML:在这里,我有一个带有点击事件的简单离子项目:
<ion-item class="chat-item" (click)='openChat()' >
Run Code Online (Sandbox Code Playgroud)
它调用如下的openChat函数:
openChat() {
this.router.navigateByUrl('/chatdetail/:uid');
}
Run Code Online (Sandbox Code Playgroud)
现在,它打开了我的Chatdetail页面,在其中放置了一个后退按钮,可以像这样进行导航:
<ion-header>
<ion-toolbar>
<ion-buttons slot="start">
<ion-back-button></ion-back-button>
</ion-buttons>
<ion-title>chatdetail</ion-title>
</ion-toolbar>
</ion-header>
Run Code Online (Sandbox Code Playgroud)
但是,当我单击此按钮时,它不仅像“ Ionic3”中那样“弹出”页面,还可以将我定向到应用程序的根页面,即Tab1。
有什么方法可以覆盖该后退事件以转到之前的页面吗?
我有一个问题,SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR不知何故无法工作,但SYSTEM_UI_FLAG_LIGHT_STATUS_BAR正在工作。我目前正在使用 Android API 28。
那么发生了什么?在 API 23 及以下版本上,我按预期获得半透明状态栏和导航栏。在 API 23 和 API API 26 之间,我按预期获得了半透明的导航栏和灯光模式状态栏。但是在 API 27 及更高版本上,我获得了 Light Mode Status Bar 而不是 Light Mode Navigation Bar。它只是普通的黑色,没有任何变化。
这是我的 MainActivity 和我的代码,用于根据 Android API 级别启用半透明或浅色模式状态栏和导航栏(注意我的评论描述了哪些有效,哪些无效):
View decorView = getWindow().getDecorView();
Window win = getWindow();
//Setup Status Bar and Nav Bar white if supported
if(Build.VERSION.SDK_INT >= 27) {
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);// <- works not
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); // <- works
}
else if (Build.VERSION.SDK_INT >= 23 && Build.VERSION.SDK_INT < 27) {
//this here works …Run Code Online (Sandbox Code Playgroud)