支持Fragment的意外NoSaveStateFrameLayout

时间:2013-07-17 02:45:16

标签: android android-fragments

我在片段中尝试获取baseView(在onCreateView中膨胀并返回)时遇到了麻烦,因为我收到了意外的NoSaveStateFrameLayout。

我不知道为什么,有人可以解释一下吗?

代码:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
                         Bundle savedInstanceState) {
    LogUtil.d(TAG, "onCreateView ...");
    View v = inflater.inflate(R.layout.gen_blank, container, false);
    return v;
}

当我在所有生命周期中运行此代码时:

   LogUtil.v(TAG,  "getview = "+getView());

它记录相同的消息:getview = android.support.v4.app.NoSaveStateFrameLayout@41afdb70

1 个答案:

答案 0 :(得分:0)

支持库在视图层次结构中插入另一个视图。根据NoSaveStateFrameLayout.java中的评论:“该平台的Pre-Honeycomb版本没有View.setSaveFromParentEnabled(),所以我们在视图及其父级之间插入它。”

所以你需要用以下方法检查:

View myView = (NoSaveStateFrameLayout)getView();
if (myView != null) {
  myView = myView.getChildAt(0);
}

或者跟踪onCreateView在实例变量中返回的视图。