如何知道哪些片段中一个ViewPager当前选择? [英] How to know which fragment is currently selected in a ViewPager?
问题描述
我用ViewPager装在它的碎片,我想知道的该片段当前显示或选择viewpager
在 onResume()每个片段的方法做了一些逻辑,所以我得到的问题时,相邻片段(左,右),以当前选定的页面也被实例化。
更新:
请问片段得到任何的回调当它得到实际选择?
ViewPager适配器code:
公共类LeftPanelPagerAdapter扩展FragmentStatePagerAdapter
{
私人列表<片断>片段;公共LeftPanelPagerAdapter(FragmentManager FM,列表与LT;片断>片段)
{
超(FM);
this.fragments =片段;}@覆盖
公共片段的getItem(INT位置)
{
返回this.fragments.get(位置);
}@覆盖
公众诠释getCount将()
{ 返回this.fragments.size();
}@覆盖
公众诠释getItemPosition(Object对象)
{
返回POSITION_NONE;
}
@覆盖
由于张贴孔子code,并没有为我工作。我修改了一点。
问题是不是你的FragmentStatePagerAdapter应该实现OnPageChangeListener,但活动本身。你应该设置一个监听器,其中包含您的LeftPanelPagerAdapter mPager。
公共类ImageDetailActivity扩展活动实现OnPageChangeListener@覆盖
公共无效的onCreate(捆绑savedInstanceState)
{
mPager =(ViewPager)findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
mPager.setOnPageChangeListener(本);
....
}
BR MikeT
I use ViewPager loaded with fragments in it and I want to know which fragment is currently shown or selected in the viewpager.
The onResume() method of each fragments does some logic and so i get problems when the adjacent fragments(left and right) to the currently selected page are also instantiated.
Updated:
Does the fragment get any callbacks when it get actually selected?
ViewPager Adapter code:
public class LeftPanelPagerAdapter extends FragmentStatePagerAdapter
{
private List<Fragment> fragments;
public LeftPanelPagerAdapter(FragmentManager fm,List<Fragment> fragments)
{
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position)
{
return this.fragments.get(position);
}
@Override
public int getCount()
{
return this.fragments.size();
}
@Override
public int getItemPosition(Object object)
{
return POSITION_NONE;
}
@Override
Since the code posted by confucius, did not work for me. I modified it a little.
The problem is that not your FragmentStatePagerAdapter should implement the OnPageChangeListener, but the Activity itself. And you should set a listener for the mPager which contains your LeftPanelPagerAdapter.
public class ImageDetailActivity extends Activity implements OnPageChangeListener
@Override
public void onCreate(Bundle savedInstanceState)
{
mPager = (ViewPager) findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
mPager.setOnPageChangeListener(this);
....
}
br MikeT
这篇关于如何知道哪些片段中一个ViewPager当前选择?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!