问题标签 [android-jetpack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1873 浏览

android - 分页库:在数据库中保存数据不会触发 UI 更改

因此,我使用了 JetPack 工具中 Android 的新分页库部分。

我正在做一个非常基本的演示应用程序,其中显示了我从RandomUser API 获得的随机用户配置文件列表。

问题是我已经设置好了所有东西,它实际上有点工作。

在我的列表片段中,我正在监听数据库更改:

(我尝试了两者,使用FlowablesObservablesRxPagedListBuilder现在我正在使用LiveData。如果可能LivePagedListBuilder的话,我想使用)RxPagedListBuilder

在我的 ViewModel 中,我正在设置LivePagedListBuilder

我已将 DataSource 设置为从我的数据库中获取数据(如果有的话):

如果数据库为空,我已将 BoundaryCallback 设置为从网络获取数据:

问题是 UI 中的FlowableObservableLiveData在数据来自数据库时触发,当UserProfileDataSource从数据库返回一些结果时。如果UserProfileDataSource没有返回任何结果,则调用 BoundaryCallback,成功完成对 API 的请求,将数据存储在数据库中,但Flowable永远不会触发。如果我关闭应用程序并再次打开它,将获取我们刚刚从数据库中获取的数据,然后将其正确显示。

我已经尝试了在我搜索的所有文章、教程和 github 项目中看到的所有可能的解决方案。

正如我所说,我试图将其更改RxPagedListBuilderLivePagedListBuilder.

使用时,RxPagedListBuilder我尝试了两者,FlowablesObservables.

PagedList.Config.Builder我尝试为使用不同的调度程序设置不同的配置。

我在这里真的没有选择,我整天都在为此苦苦挣扎,任何提示都将不胜感激。

如果您需要有关代码的更多信息,请给我留言,我会更新帖子。

更新:

我已将完整的源代码提交到我的Github 存储库

0 投票
15 回答
36454 浏览

android - 使用 AndroidX 导航的 Fragment 中的动态 ActionBar 标题

我正在使用来自 Android Jetpack的新导航组件。

根 Activity 设置非常简单:

当在导航图中定义片段的标题时,它工作得很好。但是对于一个片段,我想动态设置标题。

我试过了,findNavController().currentDestination.label = "Hello world"但它什么也没做。

我当然可以使用类似的技巧(activity as? AppCompatActivity)?.supportActionBar?.title = "Hello world",但我觉得它会打破对我有用的魔法setupActionBarWithNavController()。有什么方法可以动态更新操作栏标题吗?

0 投票
2 回答
19653 浏览

android - 如何在 Jetpack 中使用导航启动第二个活动

你知道它现在是官方的:谷歌官方推荐单活动应用程序架构。但这里有一个困难。我们有多项活动。所以当我想用多个活动实现导航时,我失败了。

他们说:在多个Activity共享相同布局的情况下,可以组合导航图,代替对活动目的地的导航调用,直接在两个导航图之间导航调用。在这里

所以我创建了这个:

之后,我在这里找不到任何用于多项活动的样本 有一些这样的样本:

但是 findNavController() 等待视图,而不是活动。

我该如何解决这些人?

0 投票
0 回答
2649 浏览

android - 分页 PageKeyedDataSource 滑动以刷新调用 loadInitial

我正在关注https://github.com/googlesamples/android-architecture-components/tree/master/PagingWithNetworkSample 我注意到当分页刷新时,滑动刷新,调用 invalidate() 并调用 loadInitial 然后加载新列表。因此,如果我一次又一次地调用刷新,它总是会下载初始数据。对我来说,我想通过传递上一个键来刷新页面,然后在只有新项目可用时更新。但是现在分页库似乎不支持这个用例。

0 投票
1 回答
768 浏览

android - 如何使用 Android Navigation 将长值传递给目标片段?

我想为 Android 导航实现安全参数插件

这适用于整数和字符串,但是我无法长时间获取生成的代码。

这可能吗?

我试过了:

但这会为字符串生成代码。

这是我的选择:

在此处输入图像描述

这是行为:

  • 推断 =>String
  • 字符串 =>String
  • 整数 =>int
  • 参考=>int
0 投票
1 回答
3871 浏览

android - Android Jetpack 导航系统过渡

例如在此处的 Android Jetpack 导航组件中。我想知道当屏幕改变时是否可以使用默认系统动画(例如启动新活动时的动画)。这将在enterAnimexitAnim参数的上下文中。

0 投票
0 回答
1277 浏览

android-studio - 构建失败:无法处理 jetified-Android Jetpack

我正在将现有项目迁移到 AndroidX,以使用 Android Jetpack。

每次项目尝试构建时,都会出现以下错误之一:

(这个列表可能更长,这取决于我尝试了多少构建。)

完整错误:

已经完成了:

  • 删除 .gradle/caches 中的所有文件
  • 重建/清理项目
  • 整天在 Google/Reddit/StackOverflow 上搜索

gradle.properties:

顶级构建文件依赖项:

模块依赖:

0 投票
4 回答
24381 浏览

android - 如何使用导航类型安全参数插件将 Parcelable 类型的对象传递给片段

我正在重写我的简单 UI 应用程序以使用导航架构组件,我需要传递一个实现 Parcelable 的 Pojo,还没有看到任何关于如何做到这一点的文档。

任何帮助,将不胜感激。

0 投票
3 回答
31419 浏览

android - Annotation 参数必须是编译时间常数

我见过这个问题。类似的错误。但在我的情况下它是不同的。

在使用 Room 时,我正在创建表格。它工作正常。

但后来我发现所有表名都必须存储在不同的类中。像表名“用户”-> 存储在不同的类中。

例如。

但下面的代码不起作用。它没有从 Table 类中获取表名。给出编译时错误。“注释参数必须是编译时间常数”请帮帮我。有什么问题

0 投票
1 回答
4639 浏览

android - 使用实时数据更新字符串值

我正在使用 Live Data Architecture 实现数据绑定。我做了所有的事情,但我无法找到我必须在片段中更新响应值的地方。我做了一个按钮,然后单击按钮,我可以将数据发送到服务器并获得响应。但我的问题是片段中的味精值或成功值如何更新。当 value 为 update 时,我的观察者没有被调用。有什么我做错了执行。提前致谢。

我的片段

SignUpViewModel.class

登录片段存储库