viewpager中的谷歌地图android V2不会出现在第一页
我已经在一个视图寻呼机中实现了GoogleMapsV2。下面是我的代码 活动和适配器:viewpager中的谷歌地图android V2不会出现在第一页,android,android-viewpager,fragment,android-maps-v2,Android,Android Viewpager,Fragment,Android Maps V2,我已经在一个视图寻呼机中实现了GoogleMapsV2。下面是我的代码 活动和适配器: public class MainActivity extends FragmentActivity { FragmentManager fm; FragmentTransaction ft; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); s
public class MainActivity extends FragmentActivity {
FragmentManager fm;
FragmentTransaction ft;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayList<LatLng> alLL = new ArrayList<LatLng>();
alLL.add(new LatLng(23, 65));
alLL.add(new LatLng(49, 65));
alLL.add(new LatLng(70, 65));
alLL.add(new LatLng(32, 65));
alLL.add(new LatLng(10, 65));
ViewPagerAdapter adapter = new ViewPagerAdapter(this, alLL);
ViewPager myPager = (ViewPager) findViewById(R.id.myfivepanelpager);
myPager.setAdapter(adapter);
myPager.setOffscreenPageLimit(0);
myPager.setCurrentItem(0);
}
public class ViewPagerAdapter extends PagerAdapter {
ArrayList<LatLng> alLL;
LayoutInflater inflater;
public ViewPagerAdapter(Activity context, ArrayList<LatLng> ll) {
super();
alLL = ll;
inflater = context.getLayoutInflater();
}
@Override
public Object instantiateItem(View collection, int position) {
Log.v("Instantiate object", "pager adapter");
View view = inflater.inflate(R.layout.pages, null);
TextView tvTitle = (TextView) view.findViewById(R.id.tvTitle);
MyMapFragment map = new MyMapFragment();
Bundle bundle = new Bundle();
bundle.putDouble("lat", alLL.get(position).latitude);
bundle.putDouble("lng", alLL.get(position).longitude);
map.setArguments(bundle);
getSupportFragmentManager().beginTransaction()
.add(R.id.flMain, map, "" + position).commit();
tvTitle.setText("" + position);
((ViewPager) collection).addView(view, 0);
return view;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return alLL.size();
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
Log.v("Pager adapter", "ondestroyitem called");
((ViewPager) arg0).removeView((View) arg2);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == ((View) arg1);
}
@Override
public Parcelable saveState() {
return null;
}
}
}
我面临的问题是每当我写作时
getSupportFragmentManager().beginTransaction()
.add(R.id.flMain, map, "" + position).commit();
地图不会出现在第一页,直到我滚动到接下来的几页,当我回到第一页时,地图才会出现
当我使用
getSupportFragmentManager().beginTransaction()
.replace(R.id.flMain, map, "" + position).commit();
每个页面上的地图先出现,然后在一段时间后消失,但仍保留在最后一页
使用add或replace是实现这一点的正确方式
以及如何克服我在每个问题上面临的问题?完美解决我们的问题:
public class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override public int getCount() {
return alLL.size(); }
@Override public Fragment getItem(int position) {
return fragments.get(position); }
@Override public Object instantiateItem(View container, int position) {
View view => LayoutInflater.from(FragmentMainActivity.this).inflate(R.layout.pages,
null);
fm.beginTransaction().replace(R.id.flMain,> f
ragments.get(position), ""+position).commit(); ((ViewPager) container).addView(view, 0); return view; }
}
完美解决我们的问题:
public class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override public int getCount() {
return alLL.size(); }
@Override public Fragment getItem(int position) {
return fragments.get(position); }
@Override public Object instantiateItem(View container, int position) {
View view => LayoutInflater.from(FragmentMainActivity.this).inflate(R.layout.pages,
null);
fm.beginTransaction().replace(R.id.flMain,> f
ragments.get(position), ""+position).commit(); ((ViewPager) container).addView(view, 0); return view; }
}
完美解决我们的问题:
public class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override public int getCount() {
return alLL.size(); }
@Override public Fragment getItem(int position) {
return fragments.get(position); }
@Override public Object instantiateItem(View container, int position) {
View view => LayoutInflater.from(FragmentMainActivity.this).inflate(R.layout.pages,
null);
fm.beginTransaction().replace(R.id.flMain,> f
ragments.get(position), ""+position).commit(); ((ViewPager) container).addView(view, 0); return view; }
}
完美解决我们的问题:
public class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override public int getCount() {
return alLL.size(); }
@Override public Fragment getItem(int position) {
return fragments.get(position); }
@Override public Object instantiateItem(View container, int position) {
View view => LayoutInflater.from(FragmentMainActivity.this).inflate(R.layout.pages,
null);
fm.beginTransaction().replace(R.id.flMain,> f
ragments.get(position), ""+position).commit(); ((ViewPager) container).addView(view, 0); return view; }
}
嘿你找到解决办法了吗?我也厌倦了这个问题。@jay还没有,仍然面临着这个问题Hey!你找到解决办法了吗?我也厌倦了这个问题。@jay还没有,仍然面临着这个问题Hey!你找到解决办法了吗?我也厌倦了这个问题。@jay还没有,仍然面临着这个问题Hey!你找到解决办法了吗?我也厌倦了这个问题。@jay还没有,仍然面临使用此适配器类而不是viewpageradapterfor(int i=0;ievu vijay??jayesh ne barabar batavi Deje使用此适配器类而不是viewpageradapterfor(int i=0;ievu vijay??jayesh ne barabar batavi Deje使用此适配器类而不是viewpageradapterfor(int i=0;ievu vijay??jayesh ne barabar batavi deje使用此适配器类而不是viewpageradapterfor(int i=0;ievu vijay??jayesh ne barabar batavi deje)