Я теперь после руководства ViewPager вДубликат ошибки идентификатора, если положить карту Google в каждом фрагменте ViewPager
http://developer.android.com/training/implementing-navigation/lateral.html
И я встретил серьезную проблему.
Как я писал в заголовке, я попытался поместить карту Google v2 в каждый фрагмент viewpager, и я встретил эту ошибку. (Два ScreenSlidePageFragment получает генерируется сразу и раздувает карту для каждых них.)
Caused by: java.lang.IllegalArgumentException: Binary XML file line #8: Duplicate id 0x7f0a0059, tag null, or parent id 0xffffffff with another fragment for com.google.android.gms.maps.MapFragment
at android.app.Activity.onCreateView(Activity.java:4835)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at com.maurat.trackuz.ScreenSlidePageFragment.onCreateView(ScreenSlidePageFragment.java:39)
Я думаю, потому что это ViewPager нагрузка 2 страницы сразу в первый раз и И.Д. фрагмент карты ныряет дублируется.
ScreenSlidePagerAdapter
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
public ScreenSlidePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Log.d(TAG, "getItem " + position);
return new ScreenSlidePageFragment();
}
@Override
public int getCount() {
return NUM_PAGES;
}
}
ScreenSlidePageFragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstance) {
Log.d(TAG, "onCreateView");
ViewGroup view = (ViewGroup) inflater.inflate(
R.layout.fragment_screen_slide_page,
container,
false);
return view;
}
fragment_screen_slide_page.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#C7F464">
<fragment
android:name="com.google.android.gms.maps.MapFragment"
android:id="@+id/map_container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
Итак, я нашел и попробовал несколько решений, но пока не нашел решение. https://stackoverflow.com/a/14929151/1122517 https://stackoverflow.com/a/14695397/1122517
Теперь я найти решение, такое, как сделать фрагмент программно.
Пожалуйста, помогите мне.
Не объявляйте фрагмент mapview в макете, а добавляйте SupportMapFragment во время выполнения, используя FragmentTransaction. –
@Arun Kumar 3 Хорошо, попробуй. Но есть ли причина? Im newbee, пожалуйста, объясните мне. –