Android getTargetFragment()。getView()返回null

时间:2011-10-31 13:35:40

标签: android

我遇到方向更改和保留片段的问题。

onActivityCreated()中保留的片段中,我使用getTargetFragment().getView().find...

有时候该方法返回null。我不知道为什么。我使用兼容性库v.4。

1 个答案:

答案 0 :(得分:1)

我知道现在已经很晚了,但我偶然发现了这件事,碰巧有一个解决方法。根据我在片段中工作并在它们之间切换的经验,onCreate方法的启动速度有点太快,因此有时布局未完全初始化。在调用onCreate之后,我使用了一个计时器任务来解决这个问题。延迟似乎总是给它足够的时间。我有自己的计时器单例,你需要构建自己的计时器来安排任务,但你明白了。希望这可以帮助。

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    final QueueFragmentTab thisFrag = this;

    TimerHelper.getInstance().scheduleTask(new TimerTask() {
        @Override
        public void run() {
             //getview goes here
            Log.w(tag, "" + thisFrag.getView());

        }
    }, 100);
    return inflater.inflate(R.layout.fragment_queue, container, false);

}