مدیریت بک استک در نویگیشن کامپوننت
چهارشنبه, ۸ بهمن ۱۳۹۹، ۰۱:۳۶ ق.ظ
در نویگیشن کامپوننت میشه به ازای هر اکشن بک استک رو مدیریت کرد. یعنی اگر از یک فرگمنت به دو یا سه جای مختلف بریم به ازای هر کدوم میشه بک استک خاصی رو پیاده سازی کرد.
تگ های مورد استفاده برای مدیریت بک استک:
app:popUpTo="@id/startFragment"
app:popUpToInclusive="false"
popUpTo میگه به کدوم فرگمنت بره و popUpToInclusive اگر true باشه، فرگمنتی که در popUpTo گفته شده رو هم پاپ میکنه و در واقع فرگمنت قبلیش رو نشون میده ولی اگر popUpToInclusive فالس باشه همون فرگمنتی که در popUpTo گفته شده رو نشون میده.
مثلا:
<fragment
android:id="@+id/startFragment"
android:name="com.mimdal.jimbochat.views.fragments.StartFragment"
android:label="fragment_start"
tools:layout="@layout/fragment_start">
<action
android:id="@+id/action_startFragment_to_registerFragment"
app:destination="@id/registerFragment"
app:popUpTo="@id/startFragment"
app:popUpToInclusive="false"
/>
اینجا گفته شده اگر به رجیستر فرگمنت رفتی و دکمه بک زده شد به استارت فرگمنت برگرد
<action
android:id="@+id/action_startFragment_to_loginFragment"
app:destination="@id/loginFragment"
app:popUpTo="@id/startFragment"
app:popUpToInclusive="false"/>
اینجا گفته شده اگر به لاگین فرگمنت رفتی و دکمه بک زده شد به استارت فرگمنت برگرد
</fragment>
هر اکشن جاهایی که فرگمنت میتونه بره رو مشخص میکنه.
حالا از کجا بفهمه باید کجا بره؟ توی برنامه از طریق NavController بهش میگیم.
۹۹/۱۱/۰۸