Created
January 5, 2021 15:33
-
-
Save bng86/be37d4eb4939231c908824353e2d15c6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class MainActivity : AppCompatActivity() { | |
override fun onCreate(savedInstanceState: Bundle?) { | |
super.onCreate(savedInstanceState) | |
setContentView(R.layout.activity_main) | |
val fragment = MainFragment() | |
supportFragmentManager.beginTransaction() | |
.replace(R.id.container, fragment) | |
.commit() | |
} | |
override fun onBackPressed() { | |
if (!onBackPressedDispatcher.hasEnabledCallbacks()) { | |
// handle activity back press when no other dispatch enabled | |
Log.e(MainActivity::class.java.simpleName, "MainActivity handleOnBackPressed") | |
} | |
super.onBackPressed() | |
} | |
} | |
class MainFragment : Fragment(R.layout.fragment_main) { | |
private lateinit var callback: OnBackPressedCallback | |
override fun onAttach(context: Context) { | |
super.onAttach(context) | |
callback = object : OnBackPressedCallback(true) { | |
override fun handleOnBackPressed() { | |
Log.e(MainFragment::class.java.simpleName, "MainFragment handleOnBackPressed") | |
// do something and release back press call back | |
callback.isEnabled = false | |
} | |
} | |
requireActivity().onBackPressedDispatcher.addCallback(callback) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment