当电话屏幕被阻止时,我在 Fragment.onCreateView()
中捕获Android资源未找到异常 . 当我使用应用程序而不阻挡屏幕时,它完美地工作 . 有什么麻烦?
错误消息:
java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.hmmmk.pizzamania / com.example.hmmmk.pizzamani.mvp.main.MainActivity}:android.content.res.Resources $ NotFoundException:Resource ID#0x7f0b002e在android.app.A活动中的android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2695),在Android.app的android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4378)的android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2769) . ActivityThread.access $ 1000(ActivityThread.java:177)在Android.os.Looper的android.app.Handler.dispatchMessage(Handler.java:102)上的android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1436) . 在java.lang.reflect.Method.invoke的java.lang.reflect.Method.invoke(Native Method)的android.app.ActivityThread.main(ActivityThread.java:5910)上循环(Looper.java:135)(方法 . java:372)com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1405)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java) :1200)引起:android.content.res.Resources $ NotFoundException:android.content.res.Resources.loadXmlResourceParser(资源,android.content.res.Resources.getValue(Resources.java:1532)的资源ID#0x7f0b002e . java:3102)在android.content.res.Resources.getLayout(Resources.java:1348)的android.view.LayoutInflater.inflate(LayoutInflater.java:412)at com.example.hmmmk.pizzamani.mvp.menurest.MenuFragment位于android.app.FragmentManagerImpl.moveToState(FragmentManager.java:904)的android.app.FragmentManager.Imp.moveToState(FragmentManager.java:904)的android.app.Fragment.performCreateView(Fragment.java:2112)的.onCreateView(MenuFragment.java:75) . java:1083)在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1065)的android.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1885)android.app.Activity.performCreateCommon(Activity.java:6173)at at Android.app.Instrumentation.callActivityOnCreate(Instrum)中的android.app.Activity.performCreate(Activity.java:6199) entation.java:1118)在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2648)
资源:
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_menu_restmenu, container, false);
init(view);
presenter.attachView(this);
//FIXME: убрать эту хйню
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
if (!flag) {
headersList.performItemClick(headersList.getChildAt(0), 0, 0);
flag = true;
}
}
});
return view;
}
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/headers_list"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="#fff"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/content_list"
app:layout_constraintHeight_default="spread"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_default="spread" />
<android.support.v7.widget.RecyclerView
android:id="@+id/content_list"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_default="spread"
app:layout_constraintHorizontal_weight="2.5"
app:layout_constraintStart_toEndOf="@+id/headers_list"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_default="spread" />
</android.support.constraint.ConstraintLayout>