扩大包含片段的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();
    }
}

最佳答案

最近,我遇到了同样的问题,并进行了测试。

ViewStub中的片段确实起作用。

唯一的区别是,当在ViewStub上调用inflate()方法时,Fragment将开始其生命周期。



您的问题出在片段内容之内。

为了测试,我创建了一个片段,该片段放在ViewStub内,并在即将创建视图时引发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。

您应该在fragment类中进行调试,或者发布其代码。

关于android - 膨胀包含 fragment 的Viewstub,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29354902/

10-10 10:01