我正在使用ViewPager。
在onBackPressed()方法的Activity中我想实现保存ScrollView的位置。 因此,在Fragment类中,我创建了返回所选页面的pageNumber的方法,以及返回ScrollView的getScrollY()位置的另一个方法。
但是如何从父Activity中使用此方法?
我了解到我可以使用findFragmentById()但它有什么ID? viewpager的R.id?请解释
这里是使用实例的地方:
@Override
public Fragment getItem(int position) {
return BookPageFragment.newInstance(position);
}
答案 0 :(得分:0)
这有两种方式,
如果您在活动中创建了Fragment实例,则可以按片段实例访问方法。
MyFragment frag = new MyFragment();
frag.MyMethodInFragment(); //this method must not be private
或者您也可以按标签找到片段
final String tag = MyFragment.TAG;
final FragmentManager fm = getSupportFragmentManager();
final Fragment fragFragment = fm.findFragmentByTag(tag);
if (fragFragment != null) {
frag = (MyFragment) fragFragment ;
frag.MyMethodInFragment();
}
注意:在找到逐个标记的片段之前,您必须为片段设置标记。
我认为如果你使用的是ViewPager,你可以轻松使用第一种方法
<强>更新强>
BookPageFragment b = BookPageFragment.newInstance(position);
b.CallYourMethod();
return b;