java.lang.IllegalArgumentException:找不到 id 0x7f0d006d 的视图



我想在设备是平板电脑(横向(时添加两个片段。但是我收到下一个错误: java.lang.IllegalArgumentException: 找不到 id 0x7f0d006d (com.example.placesearch1:id/container2( 的视图,用于片段 FragMap

我创建了两个布局: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>

我有地方的回收视图(容器 1 中的main_activity布局(。当我单击该项目时,我得到一个地方的纬度和经度,并将带有捆绑包的值传递给 Map 片段并将地图放入其中一个容器中:如果设备是手机,则在容器 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();
}

通常,当您为手机或平板电脑设计xml时,文件应该是相同的,并且在两个xml中的内容应该相同。但是在您的手机情况下,只有一个framelayout但对于平板电脑来说,为什么两个framelayout

从 GetPlace 方法中删除此行

.replace(R.id.container1, new ListFragment())

最新更新