设计有效的导航:一致的导航是整体用户体验的重要组成部分。除了基本导航之外,很少有事情会以不一致和意想不到的方式挫败用户。
我有一个使用身份验证的应用程序。当用户注册时,要求验证帐户。在我当前的方法中,一旦身份验证成功,我就会将用户导航到
在我们的用户需求中,我们有这样的流程。 我已经搜索了以下内容: https://developer.android.com/guide/navigation/navigation-principles 带有嵌套导航图的循环参考 但是
我将 ComposeView 直接添加到活动根目录(这就是我从 xml 视图启动 ModalBottomsheetLayout 的方式,下面的示例经过简化但仍然可重现) 这是可复制的整个片段
Kotlin 序列化:带有导航组件和默认值的 MissingFieldException
我正在使用导航组件在 Jetpack Compose 应用程序中实现导航,但遇到了序列化问题。我有两个相关的问题: 当我从用户数据中删除默认值时
FragmentContainerview 动画排序与 popUpTo 和 popUpToInclusive
这是主活动中的设置: 这是主活动中的设置: <androidx.fragment.app.FragmentContainerView android:id="@+id/nav_host_fragment" android:name="androidx.navigation.fragment.NavHostFragment" android:layout_width="match_parent" android:layout_height="match_parent" app:defaultNavHost="true" app:navGraph="@navigation/main_nav_graph" /> 我有三个片段(A、B和C)。我从 A 导航到 B,从 B 导航到 C,并使用“从右侧滑入”动画,如下所示: <action android:id="@+id/a_to_b" app:destination="@id/b" app:enterAnim="@anim/slide_in_right" app:exitAnim="@anim/nothing" app:popEnterAnim="@anim/nothing" app:popExitAnim="@anim/slide_out_right" /> 在 Fragment C 上有一个“X”按钮,可以取消流程并直接返回到 Fragment A,并在弹出后堆栈时使用向下滑动的动画: <action android:id="@+id/cancel" app:destination="@id/a" app:enterAnim="@anim/nothing" app:exitAnim="@anim/slide_out_bottom" app:popEnterAnim="@anim/nothing" app:popExitAnim="@anim/nothing" app:popUpTo="@id/a" app:popUpToInclusive="true" /> 除了取消操作之外的所有操作都工作正常。问题在于取消操作的顺序似乎是错误的。片段 A 绘制在片段 C 之上,因此您看不到滑出动画。我认为当发生弹出时,退出的片段应该绘制在输入的片段上。 有什么方法可以改变特定操作的这种行为吗? 这是我正在使用的动画: 没什么: <?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="300" android:fromYDelta="0%p" android:toYDelta="0%p" /> 向右滑入: <?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="300" android:fromXDelta="100%p" android:toXDelta="0" /> 滑出底部: <?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromYDelta="0%p" android:toYDelta="100%p" android:duration="300"/> 问题在于在操作中使用目的地,这似乎添加了一个新条目而不是仅仅返回。当删除目的地并将“popUpToInclusive”设置为“false”时,它会按预期工作: <action android:id="@+id/cancel" app:enterAnim="@anim/nothing" app:exitAnim="@anim/slide_out_bottom" app:popEnterAnim="@anim/nothing" app:popExitAnim="@anim/nothing" app:popUpTo="@id/a" app:popUpToInclusive="false" />
在我的Android应用程序中,我在惰性列中显示数据,当用户单击列表中的一项时,它会导航到一个新屏幕(“B”),当用户按下它时导航。 ..
在 Compose NavHost 中实现导航类型安全时出现错误“类型不匹配:推断类型是...但需要 TypeVariable(T)”
根据这篇文章,从Navigation 2.8.0-alpha08版本开始,可以在导航中使用对象。 我正在尝试实现它,因为我需要传递名为 ItemUI 的对象的实例
我的 NavHost 和所有导航逻辑都在 jetpack compose 中。 我想知道,当我的视图模型初始化时,有没有办法导航(使用 navController)到某个页面? 如果不是的话
如何在 NavHost 撰写导航中将 viewModel 作为参数传递
我必须关注 NavHost: 导航主机( 导航控制器 = 导航控制器, startDestination = Destinations.ComposeEntryPointRoute ){ 可组合 { 主页继续...
我正在开发一款带有一个 MainActivity 和三个片段的 Android 应用程序。我已成功禁用工具栏中的后退按钮(向上按钮),但它仍然在工具栏中呈现。我想要...
标题已经说明了一切。我想做的就是知道导航抽屉是否打开。我在网上搜索了很多,找到了方法 isDrawerOpen(int DrawerGravity) 但找不到...
如果我添加一个 if 条件来导航到屏幕(如果表示当前部分的 int 参数已更改),则带有 navhost 的可组合项将在无限循环中重新组合。条件...
如何为具有多个路点的AMAP应用程序创建Android Intent?
如何创建Android Intent来打开具有多个航点的AMAP应用程序? 我尝试过这个 URI // 为 Intent 创建 URI 字符串 uri =“amapuri://route/plan/?dlat=destination_lat...
我正在尝试使用 jetpack compose 学习应用程序导航。我正在阅读并浏览文档和代码片段,我在这里遇到了这段代码(链接)。 在文档中,他们有
Jetpack Compose NavController 在多个导航图上具有相同的路线
我有这样的情况: 具有以下结构的单个 NavHost 和单个 NavController: NavHost(初始路由=“A”){ 导航(路线=“A”,初始路线=“A1”){
问题描述: 当我尝试创建自定义导航类型并导航到 NavGraph 中的某个目的地时,出现错误,指出无法在 gr...
使用导航栏和使用操作切换片段后强制子片段返回根片段的最佳方法是什么?
我目前正在开发一个android应用程序(https://github.com/Team4388/ScoutingApp2025/tree/stackoverflow-fragment-nav-weirdness),我最近将所有内容都换成了使用子片段...
获取导航类型安全 Jetpack Compose 中的当前屏幕
屏幕 @可序列化 密封类屏幕{ @可序列化 数据对象主页:Screen() @可序列化 数据类 Profile(val 名称: String) : Screen() } 设置导航 @可组合...
Typesafe Kotlin DSL NavGraph 抛出 IllegalStateException
我正在使用新的 Kotlin DSL Navigation Compose 插件,但出现异常: java.lang.IllegalStateException:无法从 NavGraph 找到 startDestination com.perissf.myapp.SignIn。确保...
我的应用程序将导航与房间和撰写结合使用,我的问题是启动应用程序时,会在本地数据库中进行检查,以及用户是否选择了要记住的选项