Manage Fragement - Backspace
//Below code work in first fragement and if you press backspace in any fragement it detect in first fragement only in viewpager2
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
try {
// This callback will only be called when MyFragment is at least Started.
requireActivity().onBackPressedDispatcher.addCallback(this) {
// Handle the back button event
if (noteEditMode ) {
if(isPopupMenuBarVisible)
{
showPopupMenu(false) //hide popupMenubar
}else {
listNoteDocuments()
if (etBook.text.trim().isEmpty()) {deleteFile(actualFileName, "")} //If note is empty then delete this note.
}
} else if(mViewPager.currentItem == 0 || mViewPager.currentItem == 4) {
//} else{
mViewPager.currentItem = 5
}
}
} catch (e: Exception) {
Toast.makeText(activity,e.message.toString(), Toast.LENGTH_SHORT).show()
}
// Inflate the layout for this fragment
return inflater.inflate(R.layout.f_notepadmode_book, container, false)
}
//Below code detect backspace in any fragement it works fine.
private lateinit var etBook: EditText
private lateinit var etControlBackButton: EditText
//Below onResume executed when this fragment is disBooked to the user.
override fun onResume() {
super.onResume()
showPopupMenu(false)
etControlBackButton.showSoftInputOnFocus = false
etControlBackButton.requestFocus() //To Manage Back button
hideKeyboard()
}
@SuppressLint("ResourceAsColor")
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)etBook = view.findViewById(R.id.etBook)
etControlBackButton= view.findViewById(R.id.etControlBackButton)//To Manage Back button
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){etControlBackButton.showSoftInputOnFocus = false} //It will allow cursor to focus but keyboard not open.
etControlBackButton.setOnKeyListener{ _, keyCode, event ->
if (event.action === KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {
if(popupMenuBar.visibility == LinearLayout.VISIBLE) {showPopupMenu(false)} else{mViewPager.currentItem = 5}}
false
}
etBook.setOnKeyListener{ _, keyCode, event ->
if (event.action === KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {
if(popupMenuBar.visibility == LinearLayout.VISIBLE) {showPopupMenu(false)} else{mViewPager.currentItem = 5}}
false
}
Comments
Post a Comment