充气后儿童观点为空

时间:2012-05-09 10:54:28

标签: android android-layout

好的,所以我这样做(不是实际的代码)

try {
    final View view = LayoutInflater.from(context).inflate(R.layout.ownComponent, null);
} catch (InflateExpection e) {
}

if (view != null) {
    // This child is null about 5/10 times!

    View child = view.findViewById(R.id.ownComponentChild);
}

我读到膨胀之后不能保证儿童观点被夸大了,那么当所有孩子都准备就绪时,获得回调的方法是什么呢?

2 个答案:

答案 0 :(得分:1)

也许我误解了你要做的事情,但看起来你正在夸大View而不是布局......

尝试

View view = LayoutInflater.from(context).inflate(R.layout.LAYOUT_THAT_HOLDS_ownComponent, this, true);

然后视图将保留整个布局,您可以通过

从中找到子项
view.findViewById(...);

修改

很难知道它是否相关,因为你没有发布足够的代码,但试试这个: 从try / catch中获取View view并将其作为类成员。松开决赛并投下孩子。

示例(假设ownComponentChild是FrameLayout):

FrameLayout child = (FrameLayout)view.findViewById(R.id.ownComponentChild);

答案 1 :(得分:0)

这似乎是随机发生的,所以我唯一的猜测就是在这种情况下内存越来越低,因为我必须快速重新创建这么多的UI组件才能重现。