0

任何人都可以提供最好的工作示例来在 viewpager 中使用 supportmapfragment 吗?我已经尝试了很多教程,但我无法实现它。我只需要片段及其布局。我知道如何设置viewpager。提前致谢。

4

3 回答 3

2

“似乎没有任何效果”是对您症状的无用描述。将来,请随时实际解释出了什么问题。

话虽如此,这里有一个示例项目,展示了SupportMapFragmentViewPager. 请注意,您需要使用 , 的子类ViewPager覆盖canScroll()以确保地图仍然可以水平滑动。

public class MapAwarePager extends ViewPager {
  public MapAwarePager(Context context, AttributeSet attrs) {
    super(context, attrs);
  }

  @Override
  protected boolean canScroll(View v, boolean checkV, int dx, int x,
                              int y) {
    if (v instanceof SurfaceView || v instanceof PagerTabStrip) {
      return(true);
    }

    return(super.canScroll(v, checkV, dx, x, y));
  }
}
于 2013-08-13T12:50:01.207 回答
0

in my onCreate i do the following:

mViewPager = new CustomViewPager(this);
mViewPager.setId(R.id.viewPager);
setContentView(mViewPager);

final FragmentManager fm = getSupportFragmentManager();

mViewPager.setAdapter(new FragmentStatePagerAdapter(fm) {

            @Override
            public int getCount() {
                return mContactList.size();
            }

            @Override
            public Fragment getItem(int pos) {

                    Contact mContact = mContactList.get(pos);
                    int mCurrentPosition = mContact.getPosition();
                    return ContactDetailsFragment.newInstance(mCurrentPosition);                 
            }
        });

  //loads the proper fragment on its meant-to-be position into the ViewPager
  mViewPager.setCurrentItem(position);

in my ContactDetailFragment i have this method:

public static ContactDetailsFragment newInstance(int position) {
    Bundle args = new Bundle();
    args.putInt(EXTRA_CONTACT_ID, position);

    Log.i("ContactDetailsFragment","EXTRA_CONTACT_ID = "+EXTRA_CONTACT_ID);

    ContactDetailsFragment mCdf = new ContactDetailsFragment();
    mCdf.setArguments(args);

    return mCdf;
}
于 2013-08-13T12:52:18.607 回答
-1

我在 stackoverflow 上寻找有关 supportmapfrgment 的一些帮助,我在哪里登陆。

我目前正在从事这样的项目。

如果您现在仍然需要它,请随时与我联系。

于 2013-10-17T06:21:42.543 回答