一个看似简单的有关问题。findViewById 返回 null

一个看似简单的问题。findViewById 返回 null
Java code

    int titleId = RUtils.getResId("com.android.internal.R", "id", "title_container");
    View titleView = thiz.getWindow().findViewById(titleId);



RUtils 是我写的一个工具类, 在此不给出了。

cebug的时候可以获取 titleId  
但是titleView 确实空,
该代码在onCreate执行。 

请问这是为啥呢?

------解决方案--------------------
mark

看了下ViewGroup 遍历时 flag应该没问题,所以怀疑在decor时没有添加到DecorView
有空跟踪下再看看

不过即使拿到这个title_container 解决了填充不满的问题,
自定义title还会有“载入activity时 屏幕先黑一下”的问题

建议还是把自定义title放到main.xml中


------解决方案--------------------
估计你是反射得到的titleId,你可以在不同手机上log输出下这个titleId
这个应该是一个固定值,是你编译的那个系统的值,但是不同手机的这个系统值 是不同的,所以你得不到

解决办法:
FrameLayout decorView = (FrameLayout) getWindow().getDecorView();
LinearLayout child = (LinearLayout) decorView.getChildAt(0);
FrameLayout titleView = child.getChildAt(0);
------解决方案--------------------
探讨

引用:

setContentView 之后用。。。 不先获取xml, xml里的东西你怎么能随便拿????

就这个问题,以前也遇到过