我所拥有的
我不能使用onResume(),因为左边和右边的片段已经创建了。我不能使用setUserVisibilityHint(),因为它是在onCreateView()之前调用的,所以视图还没有准备好。
那么,当某个特定片段对用户可见时,应该采用什么方法来动画视图呢?
我知道这个答案可能有点晚了,但我希望它能帮助其他在类似情况下的人。
您可以使用FragmentViewPager库(我是作者),它处理您面临的问题。其特点是:
片段
页在用户实际可见/不可见时得到通知FragmentViewPagers
(嵌套)基本用法是:
>
FragmentViewPager
附加到活动或片段,就像使用本机ViewPager
FragmentViewPager
的适配器。适配器应继承com.sbrukhanda.FragmentViewPager.Adapters.FragmentPagerAdapter
或com.sbrukhanda.FragmentViewPager.Adapters.FragmentStatePagerAdapter
重写宿主活动的OnResumeFragment()
并调用FragmentViewPager.NotifyPagerVisible()
:
private FragmentViewPager mFragmentsPager;
@Override
public void onResumeFragments() {
super.onResumeFragments();
mFragmentsPager.notifyPagerVisible();
...
}
或托管片段的onResume()
,并调用FragmentViewPager.NotifyPagerVisible()
:
private FragmentViewPager mFragmentsPager;
@Override
public void onResume() {
super.onResume();
mFragmentsPager.notifyPagerVisible();
...
}
重写宿主活动或片段的onpause()
并调用FragmentViewPager.NotifyPagerInvisible()
:
private FragmentViewPager mFragmentsPager;
@Override
public void onPause() {
super.onPause();
mFragmentsPager.notifyPagerInvisible();
...
}
如果希望查看更完整的示例代码,请检查Project的示例项目。
我使用来显示几个片段,在我的上也有。我需要更改中的文本,这取决于当前在中选择的片段。我遇到的问题是:有一些缓存机制,它在片段对用户真正可见之前对它们进行实例化,例如,当我在中选择第二个页面时,也创建了第三个页面的片段。更重要的是,我不能确定片断内部是现在可见的片断还是它只是由创建的,但对用户来说并不是真的可见的。我尝试使用来实现这一目的,但对我来说,对它所做的更改速度太慢(页面滚动,然后我的已经更
我有FragmentA和FragmentB,当FragmentA变回可见时,我有一个设置活动标题的问题。 流动 null 碎片b
下面是我的代码,它有,每个片断类嵌入了上的3个选项卡。我有菜单选项。如所示,通过选择一个选项,我需要更新当前可见的片段。要更新它,我必须调用fragment类中的一个方法。有人能建议一下如何调用那个方法吗? 假设下面是我要调用的具有方法的片段类:
我需要执行一个方法,当片段是可见的(对用户)。此方法用于在片段内显示工具提示。 我有一个活动在布局的底部有viewpager和menubar来导航一个片段。而且我还禁用了ViewPager的滑动。 当片段可见或活动时,我需要调用showTooltip()。我试过使用on resume和setUserVisibleHint(),但仍然不起作用。当viewpager移动到可见页时不显示工具提示。
我有一个ViewPager+FragmentPageAdapter的问题。 场景:我有一个活动在片段a的内部,片段a有一个ViewPager,片段B1,e片段B2。B1 e B2是同一个类,但作为参数的数据不同。 FragmentPagerAdapter 片段B
我有一个父ViewPager,我在其中传递了FragmentStatePagerAdapter。现在片段中有另一个子ViewPager在父ViewPager中。因此,当我尝试对父ViewPager的适配器进行notifyDataSetChanged时,将重新创建所有片段,但子ViewPager的当前项位置仍然与重新创建片段的子ViewPager的位置之前相同。 那么,如何重置子viewpager当