Android Jetpack是Google的一套库,工具和架构指南,用于构建Android应用程序并提供通用的基础架构代码。
我正在我的新应用中尝试视图绑定。今天突然,当我运行该应用程序时,它显示空白屏幕而不是UI。如果我删除绑定并使用setContentView,它将起作用!知道为什么这个...
使用Jetpack Navigation时,我们可以使用popUpTo和popInclusive清除堆栈。但是,当我不知道popUpto的目标位置时,如何清除堆栈?示例假设我有3个主要...
我遇到了一个问题,如果不实施脆弱的hacks,我将无法解决。我有一个表Users。我正在通过LiveData观察它。每次我对此进行更新时...
将“干净的体系结构原理应用于适配器设计模式和Jetpack填充的回收视图”
我想遵循简洁的架构原则来构建应用。有一个带有分页的回收器视图,该视图要求域层中的数据,并且域从数据层获取为List ] >> 根据PagedList Docs: PagedList中的所有数据均从其数据源加载。创建一个PagedList从DataSource加载第一数据块立即进行,因此应在后台进行线。然后,可以将构造的PagedList传递给并用于UI线程。 在Clean Architecture中,我们将数据源放入数据层中 。这意味着,如果您决定使用Jetpack的分页库,则需要将库作为数据和域依赖项的一部分导入。 [在一般情况下,我将为您提供如何在Clean Architecture中实现它的分步指南: 数据层 创建Room Database(推荐here)或数据源工厂(硬方法)。 创建一种从数据源查询/获取数据的方法,该方法返回DataSource.Factory。 @Dao interface ToiletDao { @Query("SELECT * FROM toilet") fun getToiletPapers(): DataSource.Factory<Int, ToiletPaper> } 在存储库中提供方法以访问您刚创建的方法。 fun getToiletPapers(): DataSource.Factory<Int, ToiletPaper> { return toiletDao.getToiletPapers() } 域层 创建用例或交互器以从存储库访问getToiletPapers(),并将其转换为LiveData<PagedList<>>: class GetToiletPapers @Inject constructor( private val repository: ToiletRepository ) : UseCase() { fun execute(): LiveData<PagedList<ToiletPaper>> { repository.getToiletPapers().toLiveData(pageSize = 10) } } 注: 此类是只是一个例子,以便于说明。 演示层 在ViewModel类中,调用getToiletPapers.execute()并将值存储在LiveData中。 使用PagedListAdapter将数据加载到RecyclerView。 我将不解释如何使用PagedListAdapter的详细信息,因为该社区中存在此类问题的答案。希望本指南对您有帮助!
从包含DialogFragment的片段向上导航,将重新显示DialogFragment导航组件
我正在使用导航组件,并且已经设置了向上箭头以自动处理我唯一的活动mainActivity中的导航过程。我有这个:重写fun onOptionsItemSelected(item:...
我需要在检查某些条件后启用我的Button,我想使用@InverseBinding或双向数据绑定来调用一种方法,并用返回值反映更改。我的代码:
为什么我使用LiveData时仍需要启动notifyDataSetChanged()?
我正在使用https://github.com/googlecodelabs/android-room-with-a-view/tree/kotlin中的示例项目RoomWordsSample学习Room。以下代码来自项目。在我看来,...
在Android上使用MVVM模式时从一个片段导航到另一个片段
[我正在使用MVVM模式创建一个应用程序。我正在使用导航图来管理我的应用程序中的片段,根据推荐的方法,我们不必将UI逻辑放在Activity / Fragments中,而在...]]] >>
我是MVVM和Android体系结构组件的新手。所以我有一个像这样的对象RestaurantRepository {val Restaurants:LiveData > = RestaurantClient ....
[使用Jepack导航时,我们可以使用“ popUpTo”和“ popInclusive”清除堆栈。但是,当我不知道“ popUpto”的目的地时,如何清除堆栈?示例假设我有3个主要...
setupWithNavController的工具栏方法不再可用?
所以以前我曾因错误而崩溃:您必须先调用setGraph(),然后再调用getGraph(),然后再在此处阅读解决方案框架。据说我必须在gradle上使用这些行...
ViewBinding在第二屏幕中不起作用[错误:找不到符号导入com.example.demoapp.databinding.DragAndDropBinding]
[基本上,我有一个带有两个屏幕的应用。 ScreenOne和ScreenTwo。在第一个屏幕中,我的意思是在MainActivity中,viewBinding工作正常。但是在垂直按钮上单击,它将重定向到...
Android Room,如果没有匹配的行,查询将返回什么?
@@ Dao接口ExampleDao {@Query(“ SELECT * FROM example_table WEHRE id =:id”)fun getExample(id:Int):LiveData }如果在...中没有匹配的ID,上述查询返回什么>
[我是android的新手。我无法显示toast。 val configBuilder = FirebaseRemoteConfigSettings.Builder()如果(BuildConfig.DEBUG){val cacheInterval:Long = 0 ...
为什么我不能访问NavController.getCurrentBackStackEntry()?
在文档上,它被列为我应该可以使用的公共方法。但是,当我在NavController字段上既使用点运算符又未作为方法或属性使用时,它没有显示为选择。 ...
如何在适配器中执行最新的jetpack“视图绑定”,绑定视图?
如何在适配器中执行最新的jetpack“视图绑定”,以自动绑定视图。我没有使用findVeiwById或Butterknife或Kotlin合成材料???我已经使用了新的视图绑定,并且是...
我正在尝试在Android中使用WorkManager,因为到目前为止,我已经使用AsyncTask完成了插入更新。我正在尝试更新Room数据库中的用户。我在存储库中创建了一个类来做...
您好,我是android的新手,在MVP结构上实现导航图时出现错误,我不知道如何解决,我的问题是如何从视图片段类中调用presenter,这是...