问题标签 [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.
android - 分页库:在数据库中保存数据不会触发 UI 更改
因此,我使用了 JetPack 工具中 Android 的新分页库部分。
我正在做一个非常基本的演示应用程序,其中显示了我从RandomUser API 获得的随机用户配置文件列表。
问题是我已经设置好了所有东西,它实际上有点工作。
在我的列表片段中,我正在监听数据库更改:
(我尝试了两者,使用Flowables
和Observables
,RxPagedListBuilder
现在我正在使用LiveData
。如果可能LivePagedListBuilder
的话,我想使用)RxPagedListBuilder
在我的 ViewModel 中,我正在设置LivePagedListBuilder
我已将 DataSource 设置为从我的数据库中获取数据(如果有的话):
如果数据库为空,我已将 BoundaryCallback 设置为从网络获取数据:
问题是 UI 中的Flowable
或Observable
仅LiveData
在数据来自数据库时触发,当UserProfileDataSource
从数据库返回一些结果时。如果UserProfileDataSource
没有返回任何结果,则调用 BoundaryCallback,成功完成对 API 的请求,将数据存储在数据库中,但Flowable
永远不会触发。如果我关闭应用程序并再次打开它,将获取我们刚刚从数据库中获取的数据,然后将其正确显示。
我已经尝试了在我搜索的所有文章、教程和 github 项目中看到的所有可能的解决方案。
正如我所说,我试图将其更改RxPagedListBuilder
为LivePagedListBuilder
.
使用时,RxPagedListBuilder
我尝试了两者,Flowables
和Observables
.
PagedList.Config.Builder
我尝试为使用不同的调度程序设置不同的配置。
我在这里真的没有选择,我整天都在为此苦苦挣扎,任何提示都将不胜感激。
如果您需要有关代码的更多信息,请给我留言,我会更新帖子。
更新:
我已将完整的源代码提交到我的Github 存储库
android - 使用 AndroidX 导航的 Fragment 中的动态 ActionBar 标题
我正在使用来自 Android Jetpack的新导航组件。
根 Activity 设置非常简单:
当在导航图中定义片段的标题时,它工作得很好。但是对于一个片段,我想动态设置标题。
我试过了,findNavController().currentDestination.label = "Hello world"
但它什么也没做。
我当然可以使用类似的技巧(activity as? AppCompatActivity)?.supportActionBar?.title = "Hello world"
,但我觉得它会打破对我有用的魔法setupActionBarWithNavController()
。有什么方法可以动态更新操作栏标题吗?
android - 分页 PageKeyedDataSource 滑动以刷新调用 loadInitial
我正在关注https://github.com/googlesamples/android-architecture-components/tree/master/PagingWithNetworkSample 我注意到当分页刷新时,滑动刷新,调用 invalidate() 并调用 loadInitial 然后加载新列表。因此,如果我一次又一次地调用刷新,它总是会下载初始数据。对我来说,我想通过传递上一个键来刷新页面,然后在只有新项目可用时更新。但是现在分页库似乎不支持这个用例。
android - 如何使用 Android Navigation 将长值传递给目标片段?
我想为 Android 导航实现安全参数插件。
这适用于整数和字符串,但是我无法长时间获取生成的代码。
这可能吗?
我试过了:
但这会为字符串生成代码。
这是我的选择:
这是行为:
- 推断 =>
String
- 字符串 =>
String
- 整数 =>
int
- 参考=>
int
android - Android Jetpack 导航系统过渡
例如在此处的 Android Jetpack 导航组件中。我想知道当屏幕改变时是否可以使用默认系统动画(例如启动新活动时的动画)。这将在enterAnim
和exitAnim
参数的上下文中。
android-studio - 构建失败:无法处理 jetified-Android Jetpack
我正在将现有项目迁移到 AndroidX,以使用 Android Jetpack。
每次项目尝试构建时,都会出现以下错误之一:
(这个列表可能更长,这取决于我尝试了多少构建。)
完整错误:
已经完成了:
- 删除 .gradle/caches 中的所有文件
- 重建/清理项目
- 整天在 Google/Reddit/StackOverflow 上搜索
gradle.properties:
顶级构建文件依赖项:
模块依赖:
android - 如何使用导航类型安全参数插件将 Parcelable 类型的对象传递给片段
我正在重写我的简单 UI 应用程序以使用导航架构组件,我需要传递一个实现 Parcelable 的 Pojo,还没有看到任何关于如何做到这一点的文档。
任何帮助,将不胜感激。
android - Annotation 参数必须是编译时间常数
我见过这个问题。类似的错误。但在我的情况下它是不同的。
在使用 Room 时,我正在创建表格。它工作正常。
但后来我发现所有表名都必须存储在不同的类中。像表名“用户”-> 存储在不同的类中。
例如。
但下面的代码不起作用。它没有从 Table 类中获取表名。给出编译时错误。“注释参数必须是编译时间常数”请帮帮我。有什么问题
android - 使用实时数据更新字符串值
我正在使用 Live Data Architecture 实现数据绑定。我做了所有的事情,但我无法找到我必须在片段中更新响应值的地方。我做了一个按钮,然后单击按钮,我可以将数据发送到服务器并获得响应。但我的问题是片段中的味精值或成功值如何更新。当 value 为 update 时,我的观察者没有被调用。有什么我做错了执行。提前致谢。
我的片段
SignUpViewModel.class
登录片段存储库