android-jetpack相关内容

如何使用 ViewModel 和 LiveData 进行改造 API 调用

这是我第一次尝试实现 MVVM 架构,我对进行 API 调用的正确方法有点困惑. 目前,我只是想从 IGDB API 进行一个简单的查询,并输出日志中第一项的名称. 我的活动设置如下: public class PopularGamesActivity 扩展 AppCompatActivity {@覆盖protected void onCreate(Bundle savedInsta ..
发布时间:2021-11-27 19:03:11 移动开发

Jetpack Compose:从 Composable 函数启动 ActivityResultContract 请求

截至 1.2.0-beta01androidx.activity:activity-ktx,不能再launch使用Activity.registerForActivityResult()创建的请求,如上面链接中突出显示的在“行为改变"下并在 此处的 Google 问题中看到. 应用程序现在应该如何通过 @Composable 函数启动这个请求?以前,应用程序可以通过使用 Ambient 将 ..

Jetpack Compose 相当于 RecyclerView 或 ListView 是什么?

在 Jetpack Compose 中,如何在仅布置可见项目的同时显示大数据列表,而不是在初始布局过程中组合和布置每个项目?这将类似于 View 工具包中的 RecyclerView 和 ListView. 可以使用 for 循环将 Column 内的所有组件放置在 VerticalScroller 中,但这会导致丢弃框架和在大量项目上的性能不佳. 注意:这是一个规范的自我回答问题,以 ..

使用带有喷气背包导航组件的导航抽屉时如何更改工具栏图标(汉堡包图标)

我正在使用 jetpack 导航组件来构建导航抽屉,我想更改工具栏的汉堡图标,我尝试了很多解决方案,例如 bellow 但它们不起作用 app:navigationIcon="@drawable/menu"; 还有 getSupportActionBar().setHomeButtonEnabled(true);getSupportActionBar().setDisplayHomeAsUp ..

Jetpack Compose 截取可组合功能的截图?

我想在 Jetpack Compose 上截取特定可组合功能的屏幕截图.我怎样才能做到这一点?请任何人帮助我.我想截取可组合函数的截图并与其他应用程序共享. 我的函数示例: @Composable有趣的照片卡(){堆() {图像(图像资源(id = R.drawable.background))文本(文本=“示例")}} 这个功能怎么截图? 解决方案 您可以创建一个测试,将内容设 ..

如何为工人类实现 Dagger?

既然Worker类是由框架(WorkerManager)创建的,我们如何在Worker中使用@Inject字段? 解决方案 你必须在要注入的模块中使用@Provides注解提供类. 首先创建一个包含提供类的模块的组件. @Component(modules = {Module.class})公共接口 Component1{无效注入(SyncWorker syncWorker);} ..
发布时间:2021-11-27 18:20:56 移动开发

显示运行 WorkManager 工作进程的详细进度

我想用新的 JetPack 替换现有数据同步系统的作业调度方面WorkManager(链接到 codelabs)组件(在沙箱分支中的应用程序).我现有的系统运行良好,但 WorkManager 中的一些新功能会派上用场(例如链接). 我当前的系统使用共享的 LiveData 将正在进行的工作的进度传达给观察它的任何 UI 元素(在我的例子中是 RecyclerView)(我是实际上 View ..
发布时间:2021-11-27 18:20:46 移动开发

Annotation 参数必须是编译时常量

我看过这个问题.类似的错误.但在我的情况下是不同的. 在使用 Room 时,我正在创建表格.它工作正常. @Daointerface用户道{@Query("SELECT * FROM 用户")fun getAll(): List@Insert(onConflict = OnConflictStrategy.REPLACE)有趣的插入(用户:用户)@删除有趣的删除(用户:用户)} 但后来我 ..

onActivityCreated 弃用:如何使用 NavigationComponent 添加片段作为 MainActivity 的观察者

我刚刚看到 onActivityCreated() 将来会被弃用.我尝试实现 LifecycleOwner 和 LifecycleObserver 模式,但我不太确定我在这里做什么. 我正在使用 NavigationComponent,这意味着: 我有一个 MainActivity 我有一个 MainFragment,实例化为 home 片段 我有多个可以从此主片段访问的片段 ..
发布时间:2021-11-27 18:20:29 移动开发

迁移到 Jetpack 撰写错误:不允许未绑定的符号

我想迁移我现有的项目以部分使用 Jetpack compose. 所以我使用 Android studio 4.2-canary9 打开它并添加了一个 compose 活动,以便 Android studio 添加所需的配置. 当我尝试运行该项目时,它给了我一个错误: e: java.lang.AssertionError: Unbound symbols not allowed 使用 ..

使用 Room 更新 PagingLibrary 中的列表项(仅限网络)

我正在使用分页库从使用ItemKeyedDataSource的网络加载数据.获取用户可以编辑的项目后,此更新在内存缓存中完成(不使用 Room 之类的数据库). 现在由于 PagedList 本身无法更新(讨论 here) 我必须重新创建 PagedList 并将其传递给 PagedListAdapter. 更新本身没问题,但是在用新的PagedList更新recyclerView后, ..

输入“状态<列表<用户>?"没有方法“getValue(Nothing?, KProperty<*>)",因此它不能作为委托

我正在尝试使用 jetpack compose 中的 observeAsState 从 LiveData 获取值,但我收到一个奇怪的错误 输入“状态"没有方法 'getValue(Nothing?,KProperty)',因此它不能作为委托 代码 @Composable有趣的用户屏幕(用户视图模型:用户视图模型){val 项目:列表通过 userViewModel.fetchUser ..

BoundService + LiveData + ViewModel 新Android推荐架构最佳实践

我一直在思考将 Android 服务放置在新的 Android 推荐架构.我想出了很多可能的解决方案,但我无法决定哪一种是最好的方法. 我做了很多研究,但找不到任何有用的指南或教程.我发现的关于在我的应用程序架构中放置服务的位置的唯一提示是来自@JoseAlcerreca 中等帖子 理想情况下,ViewModel 不应该对 Android 一无所知.这提高了可测试性、泄漏安全性和模块化 ..

片段转换的 ViewPager 和 RecyclerView 问题

设置如下: 带有 nav_graph 的单个活动应用程序 (MainActivity) HomeFragment 有 viewPager2 和 3 个子片段 这 3 个片段中的每一个都是相同的片段,其中 RecyclerView 显示不同的帖子列表 用户可以点击帖子并导航到全新的屏幕/片段(详细信息) 点击“返回"按钮抛出异常: java.lang.Illega ..

禁用底部导航控制器中的当前选项卡

我使用 Jetpack Navigation 来处理底部导航控制器.效果很好;但是,我正在寻找一种改进用户体验的方法. 是否可以禁用用户当前导航到的标签? 我可以“垃圾邮件"底部导航中的当前选项卡,它会重新加载数据和不必要的用户界面.如果这种行为(重新点击当前选项卡)是有意的,有没有办法保留片段的状态,以便在导航离开时&到,它不会重新创建? 我如何处理底部导航: navCont ..
发布时间:2021-11-27 18:19:23 移动开发

如何创建发出单个事件并仅通知最后订阅的观察者的 LiveData?

我创建了一个实时数据,它发出一个事件,就像在这个 example. 接下来我的问题是:当 LiveData 中的值发生变化时,如何仅通知最后订阅的观察者? 我想到的是将观察者存储在 SingleLiveData 类的链表中,然后仅当传递的观察者与列表的最后一个元素相同时才调用 super.observe. 我不确定这是否是最好的方法. 我想使用这种机制将 FAB 单击事件从 ..

用于在后台运行日常任务的 Android WorkManager api

即使应用程序关闭,我也需要每天在后台调用一个 API.我已经看到了 WorkManager API.对于我的场景,我尝试了 PeriodicWorkRequest 但不幸的是,它没有达到我的预期结果.我所做的是在 Application 类中使用了这段代码 PeriodicWorkRequest.Builder myWorkBuilder =new PeriodicWorkRequest.Bu ..

我可以使用 CameraX (Android Jetpack) 录制视频吗?

Google 已作为 Jetpack 的一部分发布了新的 CameraX 库.它看起来很适合拍照,但我的用例还需要制作视频.我尝试谷歌搜索,但找不到任何东西. 那么,是否可以使用 CameraX Jetpack 库来录制视频? 解决方案 是的,我们可以使用 CameraX 录制视频.我试图在 CameraX 的 Github 演示的帮助下实现自己.请参考以下代码可能对您有所帮助. ..
发布时间:2021-11-27 18:18:55 移动开发