在创建视图Android

时间:2015-11-08 06:01:36

标签: android android-layout

我正在创建自己的自定义视图,并在初始化后立即无法访问布局对象。

我理解文档说布局可以为null。但是有一些我可以覆盖的事件会告诉我它什么时候可用吗?我已经在SO上找到了建议添加ViewTreeObserver(here)的答案

对我来说,我需要一个单独的类来了解布局何时可用,这似乎很奇怪。还有另一种方式吗?

2 个答案:

答案 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
}