Надуйте Viewstub, который содержит фрагмент
Есть ли проблемы при накачке viewstub, который содержит фрагмент. В крашалитике я редко вижу
Fatal Exception: android.view.InflateException
Binary XML file line #2: Error inflating class fragment
Вызванный
Caused by java.lang.IllegalStateException
Действие запускается нажатием кнопки мыши, как показано ниже.
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();
}
}
1 ответ
Недавно я наткнулся на тот же вопрос и проверил его.
Фрагмент внутри ViewStub работает.
Единственное отличие состоит в том, что Fragment начнет свой жизненный цикл при вызове метода inflate() для ViewStub.
Ваша проблема в содержании фрагмента.
Просто чтобы проверить, я создал 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.
Вы должны выполнить отладку внутри класса фрагментов или опубликовать его код.