【问题标题】:Fill fragment that is not visible with data?填充数据不可见的片段?
【发布时间】:2020-01-16 00:34:53
【问题描述】:

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

【问题讨论】:

    标签: android android-viewpager2


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2017-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多