2016-06-27 1 views
2

ERROR: FATAL EXCEPTION: main Process: groep2.project4, PID: 18507 java.lang.IllegalArgumentException: No view found for id 0x7f0d00a5 (groep2.project4:id/map) for fragment SupportMapFragment{b36c267 #0 id=0x7f0d00a5}グーグルマップ、識別XXXXXXXが見つかりません図

DrawerActivity.java

} else if (id == R.id.locatie) { fragment = fragLocatie; 
    if(!sMapFragment.isAdded()) { 
     sFragmentManager.beginTransaction().add(R.id.map, sMapFragment).commit(); 
    }else{sFragmentManager.beginTransaction().show(sMapFragment).commit();} 

Locatie.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" android:layout_height="match_parent"> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true"> 

     <FrameLayout 
      android:id="@+id/map" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"></FrameLayout> 

    </LinearLayout> 
</RelativeLayout> 

content_drawer.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    android:id="@+id/drawer_start" 
    tools:context="groep2.project4.DrawerActivity" 
    tools:showIn="@layout/app_bar_drawer" 
    android:background="#7EC580" 
    android:orientation="vertical"> 




    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="23"> 

    </FrameLayout> 

</LinearLayout> 

正しいですもし私が間違っているが、私はそのマップはisntのためだと思う引き出しアクティビティの子ですが、 "locatie"フラグメントにマップを表示する必要があります。

誰でも私を正しい方向に導くことができますか? content_drawer.xmlにマップを移動すると、すべての断片にそれが見えるように、と私はどのようにこの

編集修正する全く手がかりがありません:あなたはChildFragmentManagerを使用する必要がSupportMapFragmentを追加しながら、あなたのLocatie fragmentクラス内

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_drawer); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     sMapFragment = SupportMapFragment.newInstance(); 

     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
       this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
     drawer.setDrawerListener(toggle); 
     toggle.syncState(); 

     NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
     navigationView.setNavigationItemSelectedListener(this); 
//  navigationView.setItemTextColor(ColorStateList.valueOf(Color.DKGRAY)); 

     menucolormanager.HeadingCharts(navigationView.getMenu().findItem(R.id.categorie1),navigationView.getMenu().findItem(R.id.categorie2),navigationView.getMenu().findItem(R.id.categorie3), navigationView.getMenu().findItem(R.id.categorie4)); 

     sMapFragment.getMapAsync(this); 
    } 

    public boolean onNavigationItemSelected(MenuItem item) { 

     android.support.v4.app.FragmentManager sFragmentManager = getSupportFragmentManager(); 


     // Handle navigation view item clicks here. 
     int id = item.getItemId(); 
     Fragment fragment; 

     if(sMapFragment.isAdded()){ 
      sFragmentManager.beginTransaction().hide(sMapFragment).commit(); 
     } 

     if (id == R.id.fietstrommels) {fragment = fragFietsTrommels; 

     } else if (id == R.id.diefstallen) { fragment = fragDiefstallen; 

     } else if (id == R.id.locatie) { fragment = fragLocatie; 
      if(!sMapFragment.isAdded()) { 
       sFragmentManager.beginTransaction().add(R.id.map, sMapFragment).commit(); 
      }else{sFragmentManager.beginTransaction().show(sMapFragment).commit();} 

     } else if (id == R.id.route) { fragment = fragRoute; 

     } else if (id == R.id.kladblok) { fragment = fragKladblok; 

     } else {return false;} 

     FragmentManager fragmentManager = getSupportFragmentManager(); 
     fragmentManager.beginTransaction().replace(R.id.drawer_start, fragment).commit(); 

     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     drawer.closeDrawer(GravityCompat.START); 

     return true; 
    } 
+0

あなたは初期化して 'SupportMapFragment'を追加するコードを投稿できますか? – himanshu1496

+0

Javaコードも追加してください – Stallion

+0

OnNavigationItemSelectedメソッドとOnCreateメソッドを追加しました –

答えて

1

をfragmentManagerのように、フラグメント内にフラグメントを追加しているためです。以下はサンプルコードです

FragmentManager sFragmentManager = getChildFragmentManager(); 
sFragmentManager.beginTransaction().replace(R.id.map, sMapFragment).commit() 

同じことを実装する際に問題がある場合は、私に教えてください。

+0

これはちょっとした作業ですが、今mapyncingその sMapFragment.getMapAsync(this);フラグメント内に はありません –

+0

フラグメントクラスは 'OnMapReadyCallback'を実装する必要があり、charmのように動作する可能性があります。 – himanshu1496

+0

パブリッククラスLocatie extends Fragment OnMapReadyCallback { )フラグメントを呼び出すことはできません(アクティビティのみ) –

関連する問題