如何在Android中以编程方式设置样式属性?

Pra*_*een 9 android coding-style

我必须为以TextView编程方式创建的样式设置样式.

我如何以style="@style/test"编程方式实现?

我已经查看了Android开发人员样式文档,但它没有回答我的问题.有任何想法吗?

Rob*_*ond 25

目前不支持动态样式更改.您必须在创建视图之前设置样式(在xml中).


Dmi*_*Arc 5

您可以将样式传递给视图的构造函数。这可以通过两种方式完成:

  1. 使用ContextThemeWrapper并设置您的样式作为它的主题:

    ContextThemeWrapper wrappedContext = new ContextThemeWrapper(yourContext, R.style.test);
    TextView testView = new TextView(wrappedContext, null, 0);
    
    Run Code Online (Sandbox Code Playgroud)

这里重要的注意事项 - 要正确设置样式,ContextThemeWrapper我们必须使用三参数构造函数并将defStyleAttr参数设置为 0。否则默认按钮样式将应用于视图。

  1. 从 API 21 开始,我们可以使用带有 4 个参数的构造函数:

    View (Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)
    
    Run Code Online (Sandbox Code Playgroud)

defStyleRes你的风格ID在哪里

同样的注释 - defStyleAttr 应该为 0