navigation 相关问题

导航是指导航资源网络的过程,以及用于执行此操作的用户界面。

SwiftUI:摆脱 SelectionManagerBox<String> 尝试每帧更新多次

我花了几个小时试图摆脱我的应用程序上的此错误消息: 包含选择的列表:SelectionManagerBox 尝试每帧更新多次。 这是一款 macOS 14 应用程序。当我...

回答 1 投票 0

React Native 中嵌套导航器的问题:带有有效负载的“NAVIGATE”操作...未由任何导航器处理

我目前正在使用底部选项卡导航器,其中嵌套了堆栈导航器。 选项卡.tsx: // 这里还有其他屏幕 我目前正在使用底部选项卡导航器,其中嵌套有堆栈导航器。 选项卡.tsx: <NavigationContainer> <Tab.Navigator> // other screens here <Tab.Screen name="Stack" component={StackNavigator} /> </Tab.Navigator> </NavigationContainer> StackNavigator.tsx: const StackNavigator = () => { return ( <Stack.Navigator> <Stack.Screen name="First" component={First} options={{ headerShown: false }} /> <Stack.Screen name="Second" component={Second} options={{ headerShown: false }} /> </Stack.Navigator> ); }; 这工作正常,但由于我想在“第二个”屏幕中隐藏 BottomTabNavigator,我将选项卡导航器嵌套在 StackNavigator 中,如文档中所示。 更改后的 Tabs.tsx: <NavigationContainer> <Tab.Navigator> // other screens here <Tab.Screen name="First" component={First} /> </Tab.Navigator> </NavigationContainer> 更改后的Stack.tsx: const StackNavigator = () => { return ( <Stack.Navigator> <Stack.Screen name="Tabs" component={Tabs} options={{ headerShown: false }} /> <Stack.Screen name="Second" component={Second} options={{ headerShown: false }} /> </Stack.Navigator> ); }; 现在我尝试在“第一个”组件中调用导航函数: const First = ({ navigation }) => { return ( <View style={styles.container}> //other elements <FAB icon="plus" style={styles.fab} onPress={() => navigation.navigate("Tabs", {screen: "Second"})} /> ); }; 但是按下按钮时出现此错误: The action 'NAVIGATE' with payload {"name":"Tabs","params":{"screen":"Second"}} was not handled by any navigator. Do you have a screen named 'Tabs'? 因为我在here读到其他人在条件渲染方面遇到了问题,所以我想提一下,我也在使用 AuthStack,它会在用户注销时返回: AuthStack.tsx: export default function AuthStack() { return ( <NavigationContainer> <Stack.Navigator screenOptions={{ headerShown: false, }} > <Stack.Screen name="Welcome" component={WelcomeScreen} /> <Stack.Screen name="Sign In" component={LoginScreen} /> <Stack.Screen name="Sign Up" component={SignUpScreen} /> <Stack.Screen name="Forgot Password" component={ForgotPasswordScreen} /> </Stack.Navigator> </NavigationContainer> ); } index.tsx: export default function RootNavigation() { const { user } = useAuth(); return user ? <Tabs /> : <AuthStack />; } App.tsx: export default function App() { return <RootNavigation />; } 我做错了什么? 我已经尝试在这篇post中找到解决方案,但我找不到任何解决我的问题的答案。 好吧,您的 <NavigationContainer> 应该位于根级别。您的堆栈需要如下所示: App.js/tsx const App = () => { return ( <NavigationContainer> <RootNavigator /> </NavigationContainer> ) } RootNavigator.js/tsx const stack = CreateNativeStackScreenNavigator() // assuming you're using react-native-screens const RootNavigator = () => { const { user } = useAuth() return ( <Stack.Navigator> { user ? <Stack.Screen name={'AuthStack'} component={AuthStack} : <Stack.Screen name={'Tabs'} component={Tabs} } <Stack.Screen name={'Second'} component={Second} </Stack.Navigator> ) } 现在有了这个结构,您可以从 RootNavigator 内的任何子 StackNavigator/TabNavigator/Drawer 导航到 “第二个” 屏幕。

回答 1 投票 0

llegalArgumentException:在导航图中找不到与请求 NavDeepLinkRequest-geoMarkerScreen 匹配的导航目的地

我在我的应用程序中使用 jetpack 撰写导航,但在尝试从主屏幕导航到 geoMarkerScreen 时出现 IllegalArgumentException。问题似乎出现在BottomNavigationBar...怎么...

回答 1 投票 0

无法解析列表<String>数据屏幕A到屏幕B。在两个屏幕中使用相同的Viewmodel

问题陈述:我期望从这段代码中我可以将列表数据第一个屏幕共享到另一个屏幕。 堆栈跟踪 java.lang.IllegalArgumentException:与请求匹配的导航目的地

回答 1 投票 0

.Net Maui Shell.Current.Navigation.NavigationStack 始终有一项

我创建了一个毛伊岛 shell 应用程序。我有主页和其他三个页面。我已启用 shell 页面上的弹出菜单。下面是 Shell Xaml 我创建了一个毛伊岛 shell 应用程序。我有主页和其他三个页面。我已启用 shell 页面上的弹出菜单。下面是 Shell Xaml <ShellContent Title="Home" ContentTemplate="{DataTemplate local:MainPage}" Route="MainPage" /> <ShellContent Title="Page 1" ContentTemplate="{DataTemplate local:Page1}" Route="Page1" /> <ShellContent Title="Page 2" ContentTemplate="{DataTemplate local:Page2}" Route="Page2" /> <ShellContent Title="Page 3" ContentTemplate="{DataTemplate local:Page3}" Route="Page3" /> 我启动应用程序,出现主页。我单击汉堡菜单并导航到第一页。然后单击汉堡菜单并导航到第二页。然后单击汉堡菜单并导航到第三页。 在第三页,我必须检查导航堆栈中有多少页面,如下所示: private void btnGetStack_Clicked(object sender, EventArgs e) { var temp = Shell.Current.Navigation.NavigationStack.Count(); } 当我运行此命令时,NavigationStack 中始终只有 1 个条目,并且始终为空。 我还在第 3 页添加了一个按钮来尝试返回页面,如下所示,但它也不起作用。 private async void btnGoBack_Clicked(object sender, EventArgs e) { await Shell.Current.GoToAsync(".."); } 我需要能够使用导航堆栈。我究竟做错了什么? 我看过这个帖子: .NET MAUI Shell:如何将 `ShellContent` 页面添加到导航堆栈中以启用“向后导航”行为? 这似乎表明通过 shell 导航,这一切都不可能实现。这是真的吗? 提前感谢您的任何想法。 如果使用//route 将从当前位置向上搜索路线层次结构以查找指定路线。匹配的页面将取代导航堆栈。 当您从 Flyout 导航时,似乎它使用 // 如下所示的路线 我认为这就是导航堆栈始终是一项的原因。

回答 1 投票 0

使文本根据其下面的颜色动态改变颜色

我试图让菜单根据其下面的颜色在黑色和白色之间变化。我尝试过混合混合模式,但它会创建某些场景,其中文本变得非法......

回答 1 投票 0

getActionBar().setHomeAsUpIndicator() 打破导航抽屉“汉堡”动画

在我的应用程序中,我使用导航抽屉。我为导航抽屉中的每个项目指定了不同的图标,用于打开导航抽屉。 当我最初启动应用程序时,抽屉图标...

回答 2 投票 0

更改导航中文本的字体大小

我想在导航时更改文本的字体大小。假设我们在 screen1 中有一个文本小部件,它的字体大小为 14 像素,在 screen2 中有另一个文本小部件,字体大小为 18 像素。 ...

回答 1 投票 0

(.NET Maui) 如何判断子页面何时返回?

我有一个 .NET Maui 开发新手问题。我有一个页面调用另一个页面,当该子页面结束时我想做一些事情......它是一个详细信息页面之类的东西,用于编辑。还有...

回答 1 投票 0

如何在 Toyland.toys 上为我的孩子找到完美的玩具?

您的父母或监护人是否对市场上种类繁多的玩具选择感到不知所措?您是否发现选择不仅具有娱乐性而且具有教育意义和......的玩具具有挑战性?

回答 1 投票 0

深层链接 - 如果应用程序关闭则不起作用

我正在我的 React Native 应用程序中实现与 expo 的深度链接。我已经成功地使用此代码和本教程以及本文档来将其调整为我的嵌套堆栈: 常量链接 =...

回答 6 投票 0

Blazor 导航管理器取消位置已更改的导航

问题: Blazor 上有取消导航的方法吗? 让我们假设一个像这样的简单的 a href: 走吧 我想取消导航...

回答 4 投票 0

在发生nextjs 13应用程序路由器之前检测导航事件,然后防止它发生

使用 nextjs 12(页面路由器),从“next/router”返回的路由器具有您可以侦听和适当处理的导航事件。这是文档。 一个特定事件是routeChang...

回答 4 投票 0

Kotlin 上的捆绑包

大家。我的bundle()函数有问题。假设我有片段 A、B 和 C。我想将数据从片段 A 发送到片段 C。我只想将数据从 A 发送到 C 并切换...

回答 1 投票 0

使用 Avalonia UI 在 C# 中查询导航视图

所以,我刚刚启动了一个 C# 项目来测试 Avalonia UI,我正在开发一个基本的菜单导航系统,但我遇到了导航系统无法正确切换的问题,而不是

回答 1 投票 0

悬停后下拉菜单消失

大家晚上好, 我尝试创建一个导航,其中主类别具有各种子类别。如果将鼠标悬停在主类别上,则会显示子类别。 到目前为止它有效,但是......

回答 1 投票 0

删除当前视图,然后导航到 swiftui 中的另一个视图

有没有办法在swiftui中删除当前视图然后转到另一个视图? 我不想立即导航到第三个视图,我需要在导航到第三个视图之前删除当前视图...

回答 1 投票 0

在浏览器上导航时,Android 应用程序链接会在应用程序中打开

这就是我现在面临的。我在应用程序的清单文件中将某些页面配置为 Android 应用程序链接。当我在 Google 中搜索这些页面并单击这些页面时,它们会按预期工作...

回答 1 投票 0

如何在垂直导航中单击另一个没有子菜单的链接来关闭 boostrap 5 子菜单

<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content=""> <meta name="generator" content=""> <title>Navigation Test</title> <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.css"> <style type="text/css"> .sidebar li .submenu{ list-style: none; margin: 0; padding: 0; padding-left: 1rem; padding-right: 1rem; } </style> <body> <nav class="sidebar card py-2 mb-4"> <ul class="nav flex-column" id="accordion"> <li class="nav-item"> <a class="nav-link" href="#">Link 1</a> </li> <li class="nav-item"> <a class="nav-link" data-bs-toggle="collapse" data-bs-target="#sub_menu_1" href="#">Link 2<i class="bi small bi-caret-down-fill"></i> </a> <ul id="sub_menu_1" class="submenu collapse" data-bs-parent="#accordion"> <li><a class="nav-link" href="#">Item 1</a></li> <li><a class="nav-link" href="#">Item 2</a></li> </ul> </li> <li class="nav-item"> <a class="nav-link" data-bs-toggle="collapse" data-bs-target="#sub_menu_2" href="#">Link 3<i class="bi small bi-caret-down-fill"></i> </a> <ul id="sub_menu_2" class="submenu collapse" data-bs-parent="#accordion"> <li><a class="nav-link" href="#">Item 1</a></li> <li><a class="nav-link" href="#">Item 2</a></li> </ul> </li> <li class="nav-item"> <a class="nav-link" href="#">Link 4</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link 5</a> </li> </ul> </nav> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-b5kHyXgcpbZJO/tY9Ul7kGkf1S0CWuKcCD38l8YkeH8z8QjE0GmW1gYU5S9FOnJ0" crossorigin="anonymous"></script> </body> </html> 我尝试了一个垂直导航的示例,其中包含单个链接和两个链接,每个链接打开一个子菜单。如果我单击链接 2,则会打开子菜单。接下来,单击另一个带有子菜单的链接(链接 3)将打开相应的子菜单。链接 2 下的子菜单自动关闭。那就完美了。 我现在的问题是,如果我单击单个菜单链接(链接 1、4、5),如何关闭打开的子菜单。 预期的行为是,如果单击没有子菜单的链接,任何打开的子菜单都将关闭,并且调用链接的目标。 这是代码: 您可以在每个顶级链接下方添加空元素,其父元素就像子菜单一样,因此自动隐藏将起作用(显然它需要有内容,空链接不起作用): <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content=""> <meta name="generator" content=""> <title>Navigation Test</title> <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.css"> <style type="text/css"> .sidebar li .submenu { list-style: none; margin: 0; padding: 0; padding-left: 1rem; padding-right: 1rem; } </style> <body> <nav class="sidebar card py-2 mb-4"> <ul class="nav flex-column" id="accordion"> <li class="nav-item"> <a class="nav-link" href="#" data-bs-toggle="collapse" data-bs-target="#link1">Link 1</a> <span id="link1" data-bs-parent="#accordion"></span> </li> <li class="nav-item"> <a class="nav-link" data-bs-toggle="collapse" data-bs-target="#sub_menu_1" href="#">Link 2<i class="bi small bi-caret-down-fill"></i> </a> <ul id="sub_menu_1" class="submenu collapse" data-bs-parent="#accordion"> <li><a class="nav-link" href="#">Item 1</a></li> <li><a class="nav-link" href="#">Item 2</a></li> </ul> </li> <li class="nav-item"> <a class="nav-link" data-bs-toggle="collapse" data-bs-target="#sub_menu_2" href="#">Link 3<i class="bi small bi-caret-down-fill"></i> </a> <ul id="sub_menu_2" class="submenu collapse" data-bs-parent="#accordion"> <li><a class="nav-link" href="#">Item 1</a></li> <li><a class="nav-link" href="#">Item 2</a></li> </ul> </li> <li class="nav-item"> <a class="nav-link" href="#" data-bs-toggle="collapse" data-bs-target="#link4">Link 4</a> <span id="link4" data-bs-parent="#accordion"></span> </li> <li class="nav-item"> <a class="nav-link" href="#" data-bs-toggle="collapse" data-bs-target="#link5">Link 5</a> <span id="link5" data-bs-parent="#accordion"></span> </li> </ul> </nav> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-b5kHyXgcpbZJO/tY9Ul7kGkf1S0CWuKcCD38l8YkeH8z8QjE0GmW1gYU5S9FOnJ0" crossorigin="anonymous"></script> </body> </html> 或者您可以使用 JavaScript 来完成:在顶级链接上添加点击侦听器并使用 JavaScript 关闭打开的菜单: let links = document.querySelectorAll('.nav-item > .nav-link'); function close(e) { const menu = document.querySelector('.submenu.collapse.show'); if (menu) { bootstrap.Collapse.getOrCreateInstance(menu).hide(); } } links.forEach(el => el.addEventListener('click', close)); <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content=""> <meta name="generator" content=""> <title>Navigation Test</title> <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.css"> <style type="text/css"> .sidebar li .submenu { list-style: none; margin: 0; padding: 0; padding-left: 1rem; padding-right: 1rem; } </style> <body> <nav class="sidebar card py-2 mb-4"> <ul class="nav flex-column" id="accordion"> <li class="nav-item"> <a class="nav-link" href="#">Link 1</a> </li> <li class="nav-item"> <a class="nav-link" data-bs-toggle="collapse" data-bs-target="#sub_menu_1" href="#">Link 2<i class="bi small bi-caret-down-fill"></i> </a> <ul id="sub_menu_1" class="submenu collapse" data-bs-parent="#accordion"> <li><a class="nav-link" href="#">Item 1</a></li> <li><a class="nav-link" href="#">Item 2</a></li> </ul> </li> <li class="nav-item"> <a class="nav-link" data-bs-toggle="collapse" data-bs-target="#sub_menu_2" href="#">Link 3<i class="bi small bi-caret-down-fill"></i> </a> <ul id="sub_menu_2" class="submenu collapse" data-bs-parent="#accordion"> <li><a class="nav-link" href="#">Item 1</a></li> <li><a class="nav-link" href="#">Item 2</a></li> </ul> </li> <li class="nav-item"> <a class="nav-link" href="#">Link 4</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link 5</a> </li> </ul> </nav> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script> </body> </html>

回答 1 投票 0

找不到导航对象。您的组件位于 NavigationContainer 内吗?在移动应用程序开发中

嗨,我在反应本机导航方面遇到了问题,你能帮忙吗? 我有 2 页,这些都是空白的,可以登录。在空白页面中,我有一个按钮,当按下该按钮时,我想更改为空白页面以...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.