Viewmodel 在共享视图模型中杀死观察活动数据实例的片段
我使用共享视图模型,通过观察一个实时数据实例,从整个活动的套接字中获取值,导航组件在片段之间导航,因此出现这样一种情况:我显示一个付款收据值,然后用户单击“付款”。此片段应导航到另一个片段并销毁第一个片段,但实际发生的情况是,由于我观察到的共享视图模型实时数据实例,它仍然处于活动状态,那么,当导航到另一个片段时,如何杀死这个片段实例呢 所以首先我是在旅行状态->付款->谢谢 这是我的导航码Viewmodel 在共享视图模型中杀死观察活动数据实例的片段,viewmodel,android-livedata,android-architecture-navigation,Viewmodel,Android Livedata,Android Architecture Navigation,我使用共享视图模型,通过观察一个实时数据实例,从整个活动的套接字中获取值,导航组件在片段之间导航,因此出现这样一种情况:我显示一个付款收据值,然后用户单击“付款”。此片段应导航到另一个片段并销毁第一个片段,但实际发生的情况是,由于我观察到的共享视图模型实时数据实例,它仍然处于活动状态,那么,当导航到另一个片段时,如何杀死这个片段实例呢 所以首先我是在旅行状态->付款->谢谢 这是我的导航码 private fun updateTripStatusUI(isPayed: Boolean = fa
private fun updateTripStatusUI(isPayed: Boolean = false) {
if (isPayed) {
findNavController(R.id.navigationFragment).popBackStack()
findNavController(R.id.navigationFragment).navigate(
TripStatusFragmentDirections.actionTripStatusFragmentToThanksFragment()
)
} else
findNavController(R.id.navigationFragment).navigate(TripStatusFragmentDirections.actionGlobalPaymentFragment())
}
这是我的图表
<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/trip_graph"
app:startDestination="@id/tripStatusFragment">
<fragment
android:id="@+id/tripStatusFragment"
android:name="package.TripStatusFragment"
android:label="fragment_trip_status"
tools:layout="@layout/fragment_trip_status">
<action
android:id="@+id/action_tripStatusFragment_to_thanksFragment"
app:destination="@id/thanksFragment"
app:enterAnim="@anim/nav_default_enter_anim"
app:exitAnim="@anim/nav_default_exit_anim"
app:popEnterAnim="@anim/popup_enter"
app:popExitAnim="@anim/popup_exit" />
</fragment>
<fragment
android:id="@+id/paymentFragment"
android:name="package.PaymentFragment"
android:label="PaymentFragment"
tools:layout="@layout/fragment_payment" />
<fragment
android:id="@+id/thanksFragment"
android:name="package.ThanksFragment"
android:label="ThanksFragment"
tools:layout="@layout/fragment_thanks" />
<action
android:id="@+id/action_global_paymentFragment"
app:destination="@id/paymentFragment"
app:enterAnim="@anim/nav_default_enter_anim"
app:exitAnim="@anim/nav_default_exit_anim"
app:popEnterAnim="@anim/nav_default_pop_enter_anim"
app:popExitAnim="@anim/nav_default_pop_exit_anim" />
</navigation>
操作\u tripStatusFragment\u到\u thanksFragment应该是poputo=“somedestination”和popuptInclusive=“true”我再次更新了如何从thanksFragment导航到tripStatusFragment
findNavController().navigate(R.id.tripStatusFragment)