膨胀包含片段的viewstub时是否有任何问题。在crashalytics我很少看到
Fatal Exception: android.view.InflateException
Binary XML file line #2: Error inflating class fragment
由
引起Caused by java.lang.IllegalStateException
动作由onclick触发,如下所示。
public void openPlayer() {
if (mSlidingLayout != null) {
if (mSlidingLayout.findViewById(R.id.viewer_stub) != null) {
ViewStub stub = (ViewStub) mSlidingLayout.findViewById(R.id.viewer_stub);
stub.inflate();
}
mSlidingLayout.expandPanel();
}
}
答案 0 :(得分:2)
最近我遇到了同样的问题并进行了测试。
ViewStub 中的片段有效。
唯一的区别是,当在ViewStub上调用inflate()方法时,Fragment将开始其生命周期。
您的问题在片段内容中。
为了测试我已经创建了一个进入ViewStub的Fragment,并在即将创建视图时抛出一个RTE。
public class UserSetupFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
System.out.println("Create View");
throw new RuntimeException("Test");
}
}
在控制台上,我收到以下异常:
01-02 06:48:19.260: E/AndroidRuntime(31533): android.view.InflateException: Binary XML file line #6: Error inflating class fragment
正如您所看到的,如果在您的视图成功返回之前发生任何崩溃,您将收到InflateException。
您应该在片段类内部进行调试,或者发布其代码。