Questions tagged «android-architecture-components»

新的库集合可帮助您设计功能强大,可测试和可维护的Android应用。从用于管理UI组件生命周期和处理数据持久性的类开始。


4
分页库-具有API的页面和大小的网络+数据库的边界回调
简短问题: 使用使用页面+大小加载新页面和BoundaryCallback类的API,从Architecture组件处理分页库上数据库+网络的正确方法是什么? 研究与解释 当前,BoundaryCallback分页库中用于体系结构组件的类将列表中某个元素的实例作为参数接收,而没有该元素所在位置的实际上下文。它发生在onItemAtFrontLoaded和中onItemAtEndLoaded。 我的Api应该接收该页面和页面大小以加载下一个数据块。作为分页列表构建器的一部分添加的边界回调应根据预取距离和页面大小告诉您何时加载下一页数据。 由于API需要的页码和页面提供的尺寸,我没有看到一个方法只是通过接收从列表中提供的要素之一发送到APIonItemAtFrontLoaded和onItemAtEndLoaded。检查此链接中的google示例,它们使用最后一个元素的名称来获取下一个元素,但这不适合页面+大小的Api。 他们还提供了另一个示例,其中仅使用的网络PagedKeyedDatasource,但是没有有关如何将其与数据库和BoundaryCallback混合使用的示例或线索。 编辑:到目前为止,我发现的唯一解决方案是将最后加载的页面存储在共享首选项上,但这听起来像是一个肮脏的把戏。 请参阅 https://github.com/googlesamples/android-architecture-components/issues/252#issuecomment-392119468以获得官方信息。

2
<androidx.fragment.app.FragmentContainerView> vs <fragment>作为NavHost的视图
当androidx.fragment.app.FragmentContainerView用作导航主机而不是常规fragment应用程序时,方向更改后将无法导航到目的地。 我收到以下错误: java.lang.IllegalStateException: no current navigation node 是否有我应该正确使用的陷阱,或者我使用导航组件的方式不正确? 具有视图的简单活动xml: ... &lt;androidx.fragment.app.FragmentContainerView android:id="@+id/nav_host_fragment" android:name="androidx.navigation.fragment.NavHostFragment" android:layout_width="match_parent" android:layout_height="match_parent" app:defaultNavHost="true" app:layout_behavior="@string/appbar_scrolling_view_behavior" app:navGraph="@navigation/nav_simple" /&gt; ... 导航代码: &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;navigation xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/nav_legislator.xml" app:startDestination="@id/initialFragment"&gt; &lt;fragment android:id="@+id/initialFragment" android:name="com.example.fragmenttag.InitialFragment" android:label="Initial Fragment" tools:layout="@layout/initial_fragment"&gt; &lt;action android:id="@+id/action_initialFragment_to_destinationFragment" app:destination="@id/destinationFragment" /&gt; &lt;/fragment&gt; &lt;fragment android:id="@+id/destinationFragment" android:name="com.example.fragmenttag.DestinationFragment" android:label="Destination Fragment" tools:layout="@layout/destination_fragment" /&gt; &lt;/navigation&gt; 这是一个github存储库,您可以在其中轻松重现错误:https …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.