Android 在哪个视图的重写方法中,我将确保已附加自动布局?

Android 在哪个视图的重写方法中,我将确保已附加自动布局?,android,layout,Android,Layout,我尝试以编程方式创建android视图 当我在视图的构造函数中使用getLayoutParams()时,它会给我null。 但是,在创建对象的实例之后,如果在下一行中运行getLayoutParams(),则会得到LayoutParams not null。 例如 有人能告诉我,如果我将视图子类化,那么在哪个重写方法中,我可以确保android系统已为视图生成默认布局参数并已附加该参数?视图将不会有任何LayoutParams,除非您将其附加到布局,或通过v.setLayoutParams(lp

我尝试以编程方式创建android视图

当我在视图的构造函数中使用getLayoutParams()时,它会给我null。 但是,在创建对象的实例之后,如果在下一行中运行getLayoutParams(),则会得到LayoutParams not null。 例如


有人能告诉我,如果我将视图子类化,那么在哪个重写方法中,我可以确保android系统已为视图生成默认布局参数并已附加该参数?

视图将不会有任何LayoutParams,除非您将其附加到布局,或通过
v.setLayoutParams(lp)手动设置它它自动设置了layoutParams对象。我不必明确地设置它。我可以通过getLayoutParams获得layoutParams对象,然后按照我想要的方式调整变量,如topMargin等。不,它没有。。仅当将其附着到布局或手动设置时。(这是可以证明的,因为它返回
null
不是吗?)
 View v = new View(context); //trying getLayoutParams() in c_tor gives null
 //constructor passed..
 ViewGroup.LayoutParams lp = (ViewGroup.LayoutParams)v.getLayoutParams();
 //the above line will give a filled lp OR say lp is not null.