2013-08-22 23 views
7

Şu anda Android için geliştiriyorum 4.3.
Arka plan:
Üç farklı parça arasında gezinmek için pageViewer kullanıyorum. İkinci parçam (sekme 2), SupportMapFragment ve diğer içeriğe sahip XML'e sahiptir. aşağıda gösterildiği gibi:
My problem http://imageupload.co.uk/files/vrhg1e06x977rkm1vhmd.jpg
Benim Denemesi:
Ben SupportMapFragment için ben FragmentPagerAdapter için geçerli değildir FragmentActivity ihtiyaç olduğunu fark web'de arama yaparken. Kullanıcıya haritayı kontrol etme ve içeriğin geri kalan kısmını kontrol etme yeteneğine sahip olma ihtiyacım var.
Benim Soru:
Parçada daha fazla içerik varken SupportMapFragment öğesini viewPager ile nasıl kullanabilirim?Maps with viewer ile V2

benim kod hakkında daha fazla bilgi: Ben Singleton Fragments (her Fragment bir sınıf vardır) bu nedenle benim sınıf çünkü SupportMapFragment uzatamaz beri internet üzerinden herhangi bir çözüm bulamadı iade ediyorum FragmentPagerAdapter içeride GetItem içinde daha fazla veri var.

cevap

21

Android 4.2'den (aynı zamanda ön-Jelly için destek kitaplığında) nested fragments'u kullanabilirsiniz. Böyle parçasını oluşturmak için nasıl görebilirsiniz

geçerli: here kopyalanan kodu Üstü

public class MyFragment extends Fragment { 

    private SupportMapFragment fragment; 
    private GoogleMap map; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.layout_with_map, container, false); 
    } 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     FragmentManager fm = getChildFragmentManager(); 
     fragment = (SupportMapFragment) fm.findFragmentById(R.id.map_container); 
     if (fragment == null) { 
      fragment = SupportMapFragment.newInstance(); 
      fm.beginTransaction().replace(R.id.map_container, fragment).commit(); 
     } 
    } 

    @Override 
    public void onResume() { 
     super.onResume(); 
     if (map == null) { 
      map = fragment.getMap(); 
      map.addMarker(new MarkerOptions().position(new LatLng(0, 0))); 
     } 
    } 
} 

.

Vurgulanan Not: Kişisel Fragments düzeninde <fragment> etiketi içeremez.

+0

map_container içeriği nedir? –

+0

@AdrianOlar 'map_container ', genellikle yukarıdaki örnekte olduğu gibi kod yoluyla eklenen parçaları barındıran" FrameLayout "olarak kullanılır. –

+0

Cevabınız için çok teşekkürler, gerçekten yararlı. –

İlgili konular