Skip to content

Instantly share code, notes, and snippets.

@enricocid
Last active December 29, 2019 12:48
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 enricocid/becaa79a481f381fbf28f8e8f98b4b29 to your computer and use it in GitHub Desktop.
Save enricocid/becaa79a481f381fbf28f8e8f98b4b29 to your computer and use it in GitHub Desktop.
[Android/Kotlin] Make Toolbar's title scrollable
import android.os.Bundle
import android.text.TextUtils
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//make toolbar's title scrollable
getTitleTextView(mToolbar)?.let { tV ->
tV.isSelected = true
tV.setHorizontallyScrolling(true)
tV.ellipsize = TextUtils.TruncateAt.MARQUEE
//https://developer.android.com/reference/android/widget/TextView.html#setMarqueeRepeatLimit(int)
tV.marqueeRepeatLimit = -1
}
}
//from: https://stackoverflow.com/a/38241603
private fun getTitleTextView(toolbar: Toolbar): TextView? {
return try {
val toolbarClass = Toolbar::class.java
val titleTextViewField = toolbarClass.getDeclaredField("mTitleTextView")
titleTextViewField.isAccessible = true
titleTextViewField.get(toolbar) as TextView
} catch (e: Exception) {
e.printStackTrace()
null
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment