0

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

4

1 回答 1

0

在片段变得可见之前,我认为您正在尝试访问视图。使用 ViewPager.OnPageChangeListener 有 onPageSelected 覆盖方法。

于 2020-01-15T16:34:53.093 回答