我有一个活动,我正在使用FragmentStateAdapter类(ViewPager2)在两个片段之间滑动,就像在https://developer.android.com/training/animation/screen-slide-2中一样。
我当前的问题是,当我尝试访问活动中第二个片段的视图元素时:
TextView textViewOfFragmentB = (TextView) fragmentB.getView().findViewById(R.id.exampleTextViewOfFragmentB);
我正在接收:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
当我尝试使用该滑块的第一个片段时,它可以工作。可能是因为它是第一个片段并且最初可见吗?
如果两个片段中的一个不可见/未创建,我必须对两个片段的视图元素具有什么可能性?
我的用例是这样的:我有两个片段。一个正在显示食物,另一个正在显示饮料。片段应可滑动,因此屏幕上仅显示一个类别(类似:https://developer.android.com/training/animation/anim_page_transformer_zoomout.mp4)。通过一项服务,我在MainActivity中接收了这两个类别的外部数据。所以我已经在MainActivity中拥有了我需要的所有数据。我想将这些数据拆分为两个片段并显示它们,例如Pizza:4 $,在另一个片段上Cocktail:5 $
答案 0 :(得分:0)
在片段变得可见之前,我认为您正在尝试访问视图。与ViewPager.OnPageChangeListener一起使用时,有重写方法onPageSelected。