在 ArFragment 中隐藏加载屏幕

Dan*_*aid 2 android augmented-reality arcore sceneform

我是 ArCore 和 ArFragment 的新手。我想在检测到飞机时显示我的“菜单”视图并隐藏此加载图像。 在此输入图像描述

我使用“ arFragment.getArSceneView.getScene().setOnUpdateListener ”。每当我实现自己的“setOnUpdateListener”时,我都可以显示我的菜单,但此加载图像不会隐藏。仅当我不实现 updateListener 时,此图像才会自动隐藏。这是来自 Activity_main.xml 的片段和来自 MainActivity.java 的侦听器

<fragment android:name="com.google.ar.sceneform.ux.ArFragment"
    android:id="@+id/ux_fragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    />

        ArSceneView arSceneView =arFragment.getArSceneView();
    arSceneView.getScene().setOnUpdateListener(
            frameTime -> {
                Frame frame = arSceneView.getArFrame();
                if (frame == null) {
                    return;
                }
                if (frame.getCamera().getTrackingState() != TrackingState.TRACKING) {
                    return;
                }

                for (Plane plane : frame.getUpdatedTrackables(Plane.class)) {
                    if (plane.getTrackingState() == TrackingState.TRACKING) {
                        Log.e("********************","");
                        hsv.setVisibility(View.VISIBLE);
                    }
                }
            });
Run Code Online (Sandbox Code Playgroud)

Cla*_*son 5

您可以通过隐藏视图然后将其设置为 null 来解决让平面发现视图始终在启动时显示的问题,这样它就不会重新出现。添加onCreate()

arFragment = (ArFragment) 
        getSupportFragmentManager().findFragmentById(R.id.ux_fragment);
arFragment.getPlaneDiscoveryController().hide();
arFragment.getPlaneDiscoveryController().setInstructionView(null);
Run Code Online (Sandbox Code Playgroud)