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]
* */
var title: CharSequence? by toolbar::title
* Delegating property for [activity.supportActionBar?.title]
*/
var title: CharSequence?
set(value) {
setTitle(value)
}
get() = activity.supportActionBar?.title
/**
* Delegating property for [toolbar.subtitle]
* */
var subtitle: CharSequence? by toolbar::subtitle
* Delegating property for [activity.supportActionBar?.subtitle]
*/
var subtitle: CharSequence?
set(value) {
setSubtitle(value)
}
get() = activity.supportActionBar?.subtitle
/**
* 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
* */
fun setTitle(@StringRes titleRes: Int) = apply { toolbar.setTitle(titleRes) }
*/
fun setTitle(@StringRes titleRes: Int) = apply { activity.supportActionBar?.setTitle(titleRes) }
/**
* 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
* */
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
*
* @param isAllowed defines if back button is enabled. Default [true]
* @param useCross defines if cross icon should be used instead of arrow. Default [false]
* */
*/
fun allowBack(isAllowed: Boolean = true, useCross: Boolean = false) = apply {
activity.supportActionBar?.let {
it.setDisplayShowHomeEnabled(isAllowed)