我有自定义视图,它将属性集(xml 值)作为构造函数值
public CustomView(Context context) // No Attributes in this one.
{
super(context);
this(context, null, 0);
}
public CustomView(Context context, AttributeSet attrs) {
super(context, attrs);
this(context, attrs, 0)
}
public CustomView(Context context, AttributeSet attrs, int default_style) {
super(context, attrs, default_style);
readAttrs(context, attrs, defStyle);
init();
}
在片段类中,我将视图设置为
CustomView customView = (CustomView) view.findViewById(R.id.customView);
其中自定义视图包含各种值,例如高度、宽度、填充等。
我想根据所需条件修改这些值并将其设置回自定义视图。我在onDraw方法中放置了设置宽度高度代码并调用了无效视图。但是如果我在 CustomView 类中调用invalidate方法,上述方法将设置每次。如何克服这个问题,以便我只能在构造函数中传递修改后的属性集值。?
编辑:我需要修改在属性构造函数期间设置的视图值(使用新值初始化),以便我将获得具有新值的刷新视图。覆盖@OnDraw 或'Invalidate' 对我来说不是一个好的功能,在invalidate 里面我已经编写了将在每一秒间隔内执行的方法。