Set title and subtitle to the supportActionBar else on some circumstances it has no effect

https://stackoverflow.com/questions/26486730/in-android-app-toolbar-settitle-method-has-no-effect-application-name-is-shown
This commit is contained in:
Benoit Marty 2022-01-25 15:36:18 +01:00
parent 5bb06158c7
commit 34a703910b

View File

@ -34,41 +34,49 @@ class ToolbarConfig(val activity: AppCompatActivity, val toolbar: MaterialToolba
} }
/** /**
* Delegating property for [toolbar.title] * Delegating property for [activity.supportActionBar?.title]
* */ */
var title: CharSequence? by toolbar::title var title: CharSequence?
set(value) {
setTitle(value)
}
get() = activity.supportActionBar?.title
/** /**
* Delegating property for [toolbar.subtitle] * Delegating property for [activity.supportActionBar?.subtitle]
* */ */
var subtitle: CharSequence? by toolbar::subtitle var subtitle: CharSequence?
set(value) {
setSubtitle(value)
}
get() = activity.supportActionBar?.subtitle
/** /**
* Sets toolbar's title text * Sets toolbar's title text
* */ */
fun setTitle(title: CharSequence?) = apply { toolbar.title = title } fun setTitle(title: CharSequence?) = apply { activity.supportActionBar?.title = title }
/** /**
* Sets toolbar's title text using provided string resource * Sets toolbar's title text using provided string resource
* */ */
fun setTitle(@StringRes titleRes: Int) = apply { toolbar.setTitle(titleRes) } fun setTitle(@StringRes titleRes: Int) = apply { activity.supportActionBar?.setTitle(titleRes) }
/** /**
* Sets toolbar's subtitle text * Sets toolbar's subtitle text
* */ */
fun setSubtitle(subtitle: String?) = apply { toolbar.subtitle = subtitle } fun setSubtitle(subtitle: CharSequence?) = apply { activity.supportActionBar?.subtitle = subtitle }
/** /**
* Sets toolbar's title text using provided string resource * Sets toolbar's title text using provided string resource
* */ */
fun setSubtitle(@StringRes subtitleRes: Int) = apply { toolbar.subtitle = activity.getString(subtitleRes) } fun setSubtitle(@StringRes subtitleRes: Int) = apply { activity.supportActionBar?.setSubtitle(subtitleRes) }
/** /**
* Enables/disables navigate back button * Enables/disables navigate back button
* *
* @param isAllowed defines if back button is enabled. Default [true] * @param isAllowed defines if back button is enabled. Default [true]
* @param useCross defines if cross icon should be used instead of arrow. Default [false] * @param useCross defines if cross icon should be used instead of arrow. Default [false]
* */ */
fun allowBack(isAllowed: Boolean = true, useCross: Boolean = false) = apply { fun allowBack(isAllowed: Boolean = true, useCross: Boolean = false) = apply {
activity.supportActionBar?.let { activity.supportActionBar?.let {
it.setDisplayShowHomeEnabled(isAllowed) it.setDisplayShowHomeEnabled(isAllowed)