Mehedi Hassan Piash [Sr. Software Engineer]

May 12, 2021

How to clear navigation Stack after navigating to another fragment in Android

May 12, 2021 Posted by Piash , No comments

  • First, add attributes app:popUpTo='your_nav_graph_id' and app:popUpToInclusive="true" to the action tag.
 <fragment  
   android:id="@+id/signInFragment"  
   android:name="com.glee.incog2.android.fragment.SignInFragment"  
   android:label="fragment_sign_in"  
   tools:layout="@layout/fragment_sign_in" >  
   <action  
     android:id="@+id/action_signInFragment_to_usersFragment"  
     app:destination="@id/usersFragment"  
     app:launchSingleTop="true"  
     app:popUpTo="@+id/main_nav_graph"  
     app:popUpToInclusive="true" />  
 </fragment>  

  • Second, navigate to the destination, using above action as parameter.
 findNavController(fragment).navigate(
     SignInFragmentDirections.actionSignInFragmentToUserNameFragment()) 

  • Programitically navigate to the destination with clear previous stack
 val navOptions: NavOptions = NavOptions.Builder().apply {  
         setPopUpTo(R.id.navigation, true)  
         setLaunchSingleTop(true)  
       }.build()  
       navController.navigate(R.id.destination_fragment, null, navOptions)  

May 08, 2021

Data binding Adapter for android

May 08, 2021 Posted by Piash , No comments
 @BindingAdapter("underline")  
 fun setUnderline(textView: MaterialTextView, underline:Boolean = false) {  
   if (underline){  
     textView.paintFlags = Paint.UNDERLINE_TEXT_FLAG  
   }  
 }  
 @BindingAdapter("setImage")  
 fun setImage(imageView: ImageView, imageLink: String?) {  
   imageLink?.let {  
     Glide.with(imageView.context.applicationContext)  
       .load(it).into(imageView)  
   }  
 }