我的ViewPager里面有一些片段。在创建每个片段时,我调用构造函数,在其中传递此片段的名称:
public KwejkFragment(String tagName)
{
this.fragmentTag = tagName;
}
在MainActivity ofcourse中我创建了Adapter和ViewPager实例。然后我设置了ViewPager的监听器:
mPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
FragmentManager fm = getSupportFragmentManager();
Fragment fr = mAdapter.getItem(position);
if(fr.equals(KwejkFragment.class))
{
(KwejkFragment) fr.refresh(); //I'm trying to call method here for example showMeSomething() but it is unavailable.
}
}
在这里,我想:
1)在PagerView中获取当前可见的片段
2)调用此片段的指定方法
怎么做?
答案 0 :(得分:8)
首先将片段中的方法公开,然后使用以下代码
mPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
FragmentManager fm = getSupportFragmentManager();
Fragment fr = mAdapter.getItem(position);
if(fr instanceOf KwejkFragment))
{
fr.refresh();
}
}
将调试器放在refresh方法中,检查它是否被调用。
此代码可以使用。享受:)