how to set the Style Attribute Programmatically in Android?

前端 未结 3 1532
深忆病人
深忆病人 2020-12-06 12:01

I have to set the style for a TextView which is created programmatically.

How do I implement style=\"@style/test\" programmaticall

相关标签:
3条回答
  • 2020-12-06 12:11
    setTypeface(Typeface.DEFAULT_BOLD, Typeface.BOLD_ITALIC);
    

    It works for me

    0 讨论(0)
  • 2020-12-06 12:14

    You can pass the style to view's constructor. This can be done in 2 ways:

    1. 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.

    1. 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

    0 讨论(0)
  • 2020-12-06 12:28

    Dynamic style change is not currently supported. You must set the style before the view is create (in xml).

    0 讨论(0)
提交回复
热议问题