如何在不使用style属性的情况下设置自定义视图

时间:2017-02-10 13:26:40

标签: android

我通过所有给定的构造函数传递了样式引用:

public MyCustomView(Context context)
{ 
    super(context, null, R.style.MyStyle);
}
public MyCustomView(Context context, AttributeSet attrs)
{ 
    super(context, attrs, R.style.MyStyle);
}
public MyCustomView(Context context, AttributeSet attrs, int defStyle)
{ 
    super(context, attrs, R.style.MyStyle);
}

我在MarshMallow上尝试这个。样式未应用但在通过样式属性应用时有效。

1 个答案:

答案 0 :(得分:0)

尝试使用 ContextThemeWrapper 的三个参数构造函数,如下所示:

MyCustomView mView = new MyCustomView(new ContextThemeWrapper(this,R.style.yourStyle),null,0);

虽然MyCustomView类的构造函数如下:

    public MyCustomView(Context context, AttributeSet attrs, int defStyle)
{ 
    super(context, attrs, defStyle);
}

这应该有用。