如何知道哪些片段中一个ViewPager当前选择? [英] How to know which fragment is currently selected in a ViewPager?

查看:131
本文介绍了如何知道哪些片段中一个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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆