2015-07-20 78 views
1

這是我ItemListFragment找不到片段事務的此視圖?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/dark_gray" 
    android:orientation="vertical"> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_weight=".15" 
     android:weightSum="10" 
     android:background="@color/white" 
     android:layout_height="0dp"> 

     <ImageView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:layout_gravity="center" 
      android:src="@drawable/action_back" 
      android:id="@+id/imageView2" /> 

     <LinearLayout 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="6" 
      android:layout_gravity="center_vertical" 
      android:weightSum="1" 
      android:orientation="horizontal"> 
      <Spinner 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/idSpinner" 
       style="@style/TextViewSpinnerItem" 
       android:popupBackground="@color/dark_gray" 
       android:layout_gravity="center" 
       android:layout_weight=".8" 
       android:spinnerMode="dropdown" /> 
      <ImageView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight=".2" 
       android:visibility="gone" 
       android:layout_gravity="center_vertical" 
       android:src="@drawable/down"/> 
     </LinearLayout> 

     <ImageView 

      android:layout_width="0dp" 
      android:layout_height="30dp" 
      android:text="sort" 
      android:layout_weight="1.5" 
      android:background="@drawable/iconssort" 
      android:id="@+id/btnSort" /> 

     <ImageView 

      android:layout_width="0dp" 
      android:layout_height="30dp" 
      android:background="@drawable/iconsfilter" 
      android:layout_weight="1.5" 
      android:id="@+id/btnFilter" /> 
    </LinearLayout> 

    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight=".85" 
     android:id="@+id/mapContainer" 
     android:layout_marginTop="10dp"> 
     <ListView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:divider="@android:color/transparent" 
      android:dividerHeight="10dp" 
      android:id="@+id/lvCategoryItems" 
      android:layout_gravity="center_vertical"/> 
    </FrameLayout> 
</LinearLayout> 

我想就像ID mapContainer一個FrameLayout容器更換地圖片段。但我上面的佈局已居一片段內未在運行活動 ..

Fragment fragment = new MapViewFragment(); 
FragmentManager manager = getActivity.getSupportFragmentManager(); 
manager.beginTransaction().replace(R.id.mapContainer, fragment).commit(); 

當我試圖在這個容器中做片段交易。

它給予:沒有發現有ID "@+id/Mapcontainer"

回答

0

您是否在ItemListFragment的onCreateView之後調用代碼替換片段?因爲視圖mapContainer只在連接到佈局的ItemListFragment之後存在。
而且由於您在另一個片段中添加片段,我認爲您應該使用FragmentManager manager = getChildFragmentManager();

0

你的片段類的初始化是錯誤的...

更改代碼

Fragment fragment = new MapViewFragment(); 
FragmentManager manager = getActivity.getSupportFragmentManager(); 
manager.beginTransaction().replace(R.id.mapContainer, fragment).commit(); 

MapViewFragment fragment = new MapViewFragment(); 
FragmentManager manager = getActivity.getSupportFragmentManager(); 
manager.beginTransaction().replace(R.id.mapContainer, fragment).commit(); 

,並確保你的容器,即FrameLayout裏的ID(大概)是正確的... R.id.mapContainer應該是MainActivity中framelayout的ID ...