0

我想在設備是平板電腦(橫向)時添加兩個片段。但我得到了一個錯誤: java.lang.IllegalArgumentException異常:未找到ID 0x7f0d006d視圖(com.example.placesearch1:ID/container2的)的片段FragMapjava.lang.IllegalArgumentException:找不到id的視圖0x7f0d006d

我創建了兩個佈局:main_activity(爲手機) :

<FrameLayout 
     android:id="@+id/container1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_centerHorizontal="true"> 

    </FrameLayout> 

和main_activity(對於平板電腦橫向 - activity_main.xml中(sw600dp陸):

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="horizontal" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     > 


    <FrameLayout 
     android:id="@+id/container1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1"> 

    </FrameLayout> 

    <FrameLayout 
     android:id="@+id/container2" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1"> 

    </FrameLayout> 
    </LinearLayout> 

我有回收地點的視圖(container1中的main_activity佈局)。當我點擊該項目時,我得到一個地方的經度和緯度,並將值傳遞給地圖片段,並將地圖放入其中一個容器中:如果設備是手機,則在容器1中,但如果設備是平板電腦,則在容器2中。

如果設備是手機,它可以很好地工作,但如果設備是平板電腦,那麼我會收到錯誤消息。

在GetPlace方法

Bundle bundle = new Bundle(); 
     bundle.putDouble("lat", place.getLat()); 
     bundle.putDouble("lng", place.getLng()); 
     FragMap fragMap = new FragMap(); 
     fragMap.setArguments(bundle); 

     if(getResources().getBoolean(R.bool.isTab)) { 

      getSupportFragmentManager().beginTransaction() 
      .replace(R.id.container1, new ListFragment()) 
      .replace(R.id.container2, fragMap) 
      .addToBackStack(null) 
      .commit(); 


     } 
     else { 

      getSupportFragmentManager().beginTransaction() 
      .replace(R.id.container1, fragMap) 
      .addToBackStack(null) 
      .commit(); 
     } 

回答

1

通常這一行,當你的手機或平板電腦設計xml文件應該是相同的,也都xml的內容應該相同。但在你的情況下,對於手機只有一個framelayout,但對於平板電腦爲什麼兩個framelayout

0

取下GetPlace方法

.replace(R.id.container1, new ListFragment()) 
相關問題