I have to set the style for a TextView
which is created programmatically.
How do I implement style="@style/test"
programmatically?
I have looked at the Android developer style documentation already, but it did not answer my question. Any ideas?
I have to set the style for a TextView
which is created programmatically.
How do I implement style="@style/test"
programmatically?
I have looked at the Android developer style documentation already, but it did not answer my question. Any ideas?
Dynamic style change is not currently supported. You must set the style before the view is create (in xml).
You can pass the style to view's constructor. This can be done in 2 ways:
Use ContextThemeWrapper
and setup your style as a Theme for it:
ContextThemeWrapper wrappedContext = new ContextThemeWrapper(yourContext, R.style.test);
TextView testView = new TextView(wrappedContext, null, 0);
And important note here - to properly set the style with ContextThemeWrapper
we have to use three-argument constructor and set defStyleAttr
parameter to 0. Otherwise the default button style will be applied to the view.
Starting from API 21 we can use constructor with 4 parameters:
View (Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)
Where defStyleRes
is your style ID
With the same remark - defStyleAttr should be 0
setTypeface(Typeface.DEFAULT_BOLD, Typeface.BOLD_ITALIC);
It works for me
© 2022 - 2024 — McMap. All rights reserved.