当片段在 ViewPager 中可见时绑定变为
Binding becomes when fragment is visible in ViewPager
问题:
我有一个 ContainerFragment
,其中有一个 ViewPager。 CameraFragment
正在此 viewpager 中显示。快门按钮位于 ContainerFragment
中,当单击快门按钮以单击图片时,我正在使用一个接口在 CameraFragment 中接收回调。收到回调后,我尝试捕获图像,但应用程序因错误而崩溃。
日志:
java.lang.IllegalStateException: should never call auto-cleared-value get when it might not be available
at com.example.chat.utils.services.AutoClearedValue.getValue(AutoClearedValue.kt:51)
at com.example.chat.ui.base.BaseFragment.getBinding(BaseFragment.kt:41)
at com.example.chat.ui.camera.camera.CameraFragment.captureImage(CameraFragment.kt:127)
at com.example.chat.ui.camera.camera.CameraFragment.onShutterClicked(CameraFragment.kt:135)
at com.example.chat.ui.camera.camerafragmentcontainer.CameraContainerFragment.handleShutterClick(CameraContainerFragment.kt:94)
解决了这个问题。问题是,当我初始化接口时,我正在创建一个 CameraFragment() 实例,然后在 viewpager 中再次创建一个新实例。所以只是在 viewpager 中传递了相同的实例,问题就解决了。
问题:
我有一个 ContainerFragment
,其中有一个 ViewPager。 CameraFragment
正在此 viewpager 中显示。快门按钮位于 ContainerFragment
中,当单击快门按钮以单击图片时,我正在使用一个接口在 CameraFragment 中接收回调。收到回调后,我尝试捕获图像,但应用程序因错误而崩溃。
日志:
java.lang.IllegalStateException: should never call auto-cleared-value get when it might not be available
at com.example.chat.utils.services.AutoClearedValue.getValue(AutoClearedValue.kt:51)
at com.example.chat.ui.base.BaseFragment.getBinding(BaseFragment.kt:41)
at com.example.chat.ui.camera.camera.CameraFragment.captureImage(CameraFragment.kt:127)
at com.example.chat.ui.camera.camera.CameraFragment.onShutterClicked(CameraFragment.kt:135)
at com.example.chat.ui.camera.camerafragmentcontainer.CameraContainerFragment.handleShutterClick(CameraContainerFragment.kt:94)
解决了这个问题。问题是,当我初始化接口时,我正在创建一个 CameraFragment() 实例,然后在 viewpager 中再次创建一个新实例。所以只是在 viewpager 中传递了相同的实例,问题就解决了。