Skip to content

Instantly share code, notes, and snippets.

@diegohkd
Last active April 10, 2020 14:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save diegohkd/3b9fa7a92e9e1b665d3421c074fcc76b to your computer and use it in GitHub Desktop.
Save diegohkd/3b9fa7a92e9e1b665d3421c074fcc76b to your computer and use it in GitHub Desktop.
DialogFragment with toolbar and a menu in it
class MyDialogFragment : DialogFragment() {
...
private fun setupToolbar() {
setupToolbarCloseButton(toolbar, R.string.my_dialog_title)
setupToolbarMenu()
}
private fun setupToolbarMenu() {
toolbar.inflateMenu(R.menu.menu_my_dialog)
toolbar.setOnMenuItemClickListener { menuItem ->
if (menuItem.itemId == R.id.share) {
Toast.makeText(requireContext(), "Not implemented", Toast.LENGTH_LONG).show()
}
true
}
}
...
}
fun DialogFragment.setupToolbarCloseButton(toolbar: Toolbar, @StringRes titleRes: Int?) {
titleRes?.let(toolbar::setTitle)
toolbar.navigationIcon = ContextCompat.getDrawable(requireContext(), R.drawable.ic_close)
toolbar.setNavigationOnClickListener {
dismiss()
}
}
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/share"
android:icon="@drawable/ic_share"
android:title="@string/share"
app:showAsAction="ifRoom" />
</menu>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment