我正在创建自己的自定义视图,并在初始化后立即无法访问布局对象。
我理解文档说布局可以为null。但是有一些我可以覆盖的事件会告诉我它什么时候可用吗?我已经在SO上找到了建议添加ViewTreeObserver(here)的答案
对我来说,我需要一个单独的类来了解布局何时可用,这似乎很奇怪。还有另一种方式吗?
答案 0 :(得分:1)
根据我的理解,没有这样的方法可以覆盖以了解布局何时可用。如果您发现ViewTreeObserver很困难,可以尝试在UI Thread中发布runnable,即
view.post(new Runnable() {
@Override
public void run() {
int height = view.getHeight();
int width = view.getWidth();
}
});
答案 1 :(得分:0)
基本上,布局的初始化发生在onCreate()
中,因此如果您在onResume()
中尝试以下代码,无论自定义布局是否可用,都会更好。
如果自定义布局为custom_layout.xml
,请尝试以下代码
LayoutInflater inflater=getLayoutInflater();
View view=inflater.inflate(R.layout.custom_layout,null);
if(view!=null)
{
//Place your code over here
}