【问题标题】:Using Fragments inside of Fragment在 Fragment 内部使用 Fragments
【发布时间】:2017-11-08 12:59:28
【问题描述】:

我在 MainActivity 中使用 4 个片段和 viewPager,其中 viewPager 不可滚动,并且我在 MainActivity 片段的第二个片段中还有四个片段。我在 onCreateView 方法的所有片段中调用 API。但是当活动初始化以便所有片段 onCreateView 方法运行时,如何修复它,因为我希望片段比我的 API 调用可见。

我已经尝试过 setUserVisibleHint 方法,它在活动初始​​化时也可以工作。

我应该使用框架布局还是其他方法来解决这个问题?

【问题讨论】:

  • setVisibility被调用时,是否检查参数visibleToUser?当前可见的片段应该为真,其他片段为假。
  • 我检查过,但是当活动设置片段适配器时,isVisibleToUser 布尔值对所有片段都为真。

标签: android android-layout android-fragments fragment android-fragmentactivity


【解决方案1】:

如果我对你的理解很好,那么你想在片段可见时调用你的 api。

如果是,则使用

viewPager.addOnPageChangeListener

和 onPageSelected(int position) 回调然后只是让调用你的 api 的良好条件

编辑:将适配器更改为 viewPager

【讨论】:

  • 我正在使用 FragmentPagerAdapter 并且找不到 addonPageChangeListener 方法。你的意思是 viewPager.addOnPagerChangeListener.
  • 是的,当然那是我的错,我很抱歉 :) 它的适配器方法 inkotlin 它的 mViewPager.addOnPageChangeListener(object: ViewPager.OnPageChangeListener{})
【解决方案2】:

我认为您需要将您的 api 调用方法放在 onResume 中的每个片段中,当您的片段位于片段堆栈顶部(已显示)时将被触发。

【讨论】:

  • 那如果我不想把所有的片段都加载在一起怎么办。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-22
  • 2023-03-25
  • 1970-01-01
  • 2013-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多