用数据填充不可见的片段?

时间:2020-01-15 15:22:47

标签: android android-viewpager2

我有一个活动,我正在使用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 $

1 个答案:

答案 0 :(得分:0)

在片段变得可见之前,我认为您正在尝试访问视图。与ViewPager.OnPageChangeListener一起使用时,有重写方法onPageSelected。