所以我有两个自定义视图。我需要知道我的自定义视图的像素尺寸,我通过以下方式得到它:
protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld)
{
width_dimension = xNew; // << this is the field i need to share
super.onSizeChanged(xNew, yNew, xOld, yOld);
}
我有另一个自定义视图,我需要在其中传递字段“width_dimension”。这样做的正确方法是什么?我尝试在我的活动的 onCreate() 方法中传递信息,但它在我的自定义视图的 onSizeChanged() 之前被调用,因此该字段未定义。我还尝试传入 onSizeChanged() 方法(上图),但我的 OTHER 自定义视图尚未由 xml 布局实例化(引发空指针异常)。
覆盖 onSizeChanged() 方法是否是确定视图宽度的正确方法(它在 xml 中设置为 wrap_content)?以及如何将此信息共享到另一个自定义视图?
对不起,如果这个问题不是很清楚。很难解释,我面临的问题是我需要知道我的所有自定义视图何时被实例化和布局,以便我可以在它们之间交换维度信息(在运行时确定)。