使用 Scenform 将 SceneView 加载到片段中后出现黑屏
Black screen after loading SceneView, using Scenform, into a fragment
我正在进行一个项目,该项目将在一个片段中包含 3D 模型查看器。为此,我决定使用 sceneform。在我的选项卡片段中尝试显示 SceneView 后,我遇到了问题。
一切都是根据示例和 sceneform 文档完成的,但是 sceneView
显示黑屏,无论我分配的颜色如何。
这是场景加载器
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
vw = inflater.inflate(R.layout.fragment_open_gl, container, false);
sceneView = vw.findViewById(R.id.scene_view);
return vw;
}
和片段:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".OpenGL">
<com.google.ar.sceneform.SceneView
android:id="@+id/scene_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/Crimson"/>
</FrameLayout>
我通过添加暂停和恢复场景视图以及片段解决了这个问题:
@Override
public void onPause() {
super.onPause();
sceneView.pause();
}
@Override
public void onResume() {
super.onResume();
try {
sceneView.resume();
} catch (CameraNotAvailableException e) {
e.printStackTrace();
}
}
我正在进行一个项目,该项目将在一个片段中包含 3D 模型查看器。为此,我决定使用 sceneform。在我的选项卡片段中尝试显示 SceneView 后,我遇到了问题。
一切都是根据示例和 sceneform 文档完成的,但是 sceneView
显示黑屏,无论我分配的颜色如何。
这是场景加载器
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
vw = inflater.inflate(R.layout.fragment_open_gl, container, false);
sceneView = vw.findViewById(R.id.scene_view);
return vw;
}
和片段:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".OpenGL">
<com.google.ar.sceneform.SceneView
android:id="@+id/scene_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/Crimson"/>
</FrameLayout>
我通过添加暂停和恢复场景视图以及片段解决了这个问题:
@Override
public void onPause() {
super.onPause();
sceneView.pause();
}
@Override
public void onResume() {
super.onResume();
try {
sceneView.resume();
} catch (CameraNotAvailableException e) {
e.printStackTrace();
}
}