android-jetpack相关内容

使用导航组件将视图模型范围限定为多个片段(不是活动)

我正在使用导航组件,我希望在几个片段之间共享一个视图模型,但是当我离开这些片段时它们应该被清除(因此没有将它们限定到活动中)我正在尝试使用一个活动多片段方法.我设法使用多个导航主机实现了这一点,并使用 getParentFragment 将片段范围限定到它,但这只会导致更多问题必须将片段包装在其他父片段中,失去后退按钮无缝工作和其他黑客来获得一些应该工作的东西很简单.有没有人有关于如何实现这一目标 ..

如何使用 Paging 3 库更新单个项目

我正在尝试使用 Paging 3 库中的 PagingAdapter 找到一种方法来更新回收器视图中的单个项目.我只找到了一种使用 PagingAdapter.refresh() 方法的方法.但是这种方法强制从网络加载所有列表.有人知道如何在不从网络加载所有页面的情况下实现它吗? 解决方案 目前,更新后备数据集的唯一方法是使列表无效并重新加载.对于使用缓存层(在数据库中,例如房间或内存中) ..

Android 工作管理器与服务?

在我的 Android 应用程序中,我有多个意图服务,它们一个接一个地运行,第一个意图服务由广播触发.几天前我遇到了 Work Manager 并且非常喜欢 Worker 的简单性和 WorkManager 类.与常规意图服务相比,工作管理器的优缺点是什么?考虑到我将来可能需要编写更多意图服务,我现在应该切换到工作经理吗?还有哪个选项可以帮助我轻松测试代码? 解决方案 WorkManage ..

Jetpack Compose - 修饰符顺序

文档说修饰符是从左边应用的.但从这个例子来看,它们似乎是从右侧应用的:先边框再填充,因为文字和边框之间没有空格 Text(“你好!", Modifier.padding(10.dp).border(2.dp, Color.Magenta)) 解决方案 在 Android Compose 中,生成的图像是从外层向中心的 Composable 构建的.这意味着首先定义的绿色边框是外边框,最后定义 ..

如何使用 WorkManager 安排通知?

我想在用户每次在特定时间在数据库中添加注释时安排通知.虽然有多种方法可以使用 AlarmManager、BroadcastReceiver 等来完成,但如何使用 WorkManager 来完成? 解决方案 WorkManager 不适用于需要在特定时间发生的工作. 您应该使用 AlarmManager,特别是 AlarmManagerCompat.setExactAndAllowWh ..
发布时间:2021-11-27 18:17:50 移动开发

处理 Android 导航组件中的后退按钮

我想知道如何使用导航控制器正确处理系统后退按钮操作.在我的应用程序中,我有两个片段(例如片段 1 和片段 2),并且我在片段 1 中有一个动作,目标是片段 2.除了一件事之外,一切都运行良好 - 当用户按下 fragment2 中的系统后退按钮时,我想显示一个对话框(例如使用 DialogFragment)以确认退出.实现这种行为的最佳方法是什么?如果我在我的主机片段中使用 app:default ..
发布时间:2021-11-27 18:17:34 移动开发

我可以使用在 Androidx 项目中使用了 android 支持的库吗?

我知道,androidx 和支持导致 multidex 错误的依赖我们不能同时使用 androidx 和 android 支持.所以我完全迁移到 androidx.但是我的一个依赖库使用了 android 支持“lottie". 遇到以上情况我们该怎么办?我是否应该从我的项目中删除“lottie". 下面是我的毕业证 defaultConfig {minSdk 版本 19目标SDK版 ..
发布时间:2021-11-27 18:17:14 移动开发

Android:DataBinding 和 ViewBinding 的区别

自 Jetpack 发布以来,我们一直在使用 DataBinding.Android 文档表明 ViewBinding 已添加到 Android Studio 3.6 Canary 11+ 中. 我阅读了文档,但它看起来类似于 DataBinding. 谁能解释一下这两个概念有什么区别? 解决方案 根据官方文档: 视图绑定 仅将视图绑定到代码. 数据绑定 ..

如何同时使用导航抽屉和底部导航 - 导航架构组件

我有如下屏幕,在同一屏幕上包含导航抽屉和底部导航: 我正在使用 Jetpack 导航架构组件. 当前问题和我尝试了什么? 点击第二个和第三个底部导航项在工具栏上显示后退箭头? 尝试过:将与第二和第三底部导航相关的片段设置为顶级目的地 appBarConfig = AppBarConfiguration(setOf(R.layout.fragment_star, R.lay ..

如何为导航操作定义默认动画?

我使用的是 Android Studio 3.2 Canary 14 和 导航架构组件.有了这个,您可以像使用 Intent 一样定义过渡动画. 但是动画被设置为导航图中动作的属性,如下所示: 为图中的所有动作定义这会很乏味! 有没有办法在动作上定义一组默认动画? 我没有运气为此使用样式. 解决方案 R.anim 具有定义的默认动画(作为最终): nav_de ..

使用 Android 导航将数据传回上一个片段

我已经开始使用 Android 架构组件(导航和安全参数、视图模型)以及 Koin 库. 目前,我在两个片段之间传递参数时遇到问题 - 我需要将字符串值从片段 A 传递到片段 B,在片段 B 中修改该值并将其传递回片段 A. 我找到了一种可能的解决方案 - 共享视图模型.不幸的是,这种方法有一个问题,因为我可以在屏幕之间传递和修改值,但是当片段 A 导航到另一个目的地时,共享视图模型中 ..

具有多个堆栈的 Android JetPack 导航

我使用的是带有底部导航的 Jetpack Navigation version 1.0.0-alpha04.它有效,但导航没有正确发生.例如,如果我有选项卡 A 和选项卡 B,然后从选项卡 AI 转到页面 C,然后从那里转到选项卡 B 并再次返回选项卡 A,我将在选项卡 A 中看到根片段,而不是在页面 C 中不是我期望的. 我正在寻找一种解决方案,为每个选项卡提供不同的堆栈,因此当我返回时每个选 ..

如何以编程方式更改导航图的起始目的地 [Jetpack]

基本上,我有以下导航图: 我想在到达它后立即将导航图中的起点更改为 fragment 2(以防止在按下后退按钮时返回到 fragment 1 - 例如与启动画面). 这是我的代码: navGraph = navController.getGraph();navGraph.setStartDestination(R.id.fragment2);navController.setGrap ..

是否可以使用 Android 导航架构组件(Android Jetpack)有条件地设置 startDestination?

我正在使用 Navigation 来自 Android Jetpack 在屏幕之间导航.现在我想动态设置 startDestination. 我有一个名为 MainActivity 的活动还有两个 Fragment,FragmentA &片段B. var isAllSetUp : Boolean =//它是动态的,我是从 Preferences 中得到的.如果(isAllSetUp){// ..

使用 Jetpack 的 Android 导航组件销毁/重新创建片段

我正在尝试使用 Jetpack 的架构组件实现导航 在我现有的应用中. 我有一个活动应用程序,其中主要片段 (ListFragment) 是一个项目列表.目前,当用户点击列表项时,第二个片段会通过 fragmentTransaction.add(R.id.main, detailFragment) 添加到堆栈中.因此,当按下返回时,DetailFragment 被分离,ListFragmen ..