java.lang.IllegalArgumentException: 未找到 ID 0x7f0d006d 的视图
java.lang.IllegalArgumentException: No view found for id 0x7f0d006d
我想在设备是平板电脑(横向)时添加两个片段。但我得到下一个错误:
java.lang.IllegalArgumentException:未找到片段 FragMap
的 id 0x7f0d006d (com.example.placesearch1:id/container2) 的视图
我创建了两个布局:main_activity(for phone):
<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-land):
<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>
我有 RecycleView of places(main_activity 容器 1 中的布局)。当我单击该项目时,我得到一个地方的纬度和经度,并将带有 bundle 的值传递给地图片段,并将地图放入其中一个容器中:如果设备是 phone,则在容器 1 中,但如果设备是平板电脑然后在 container2.
如果设备是 phone 它可以完美运行,但如果设备是平板电脑,那么我会收到错误消息。
在 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();
}
从 GetPlace 方法中删除这一行
.replace(R.id.container1, new ListFragment())
通常,当您为 phone 或平板电脑设计 xml
时,文件应该相同,而且两者 xml
的内容也应该相同。但是在你的情况下 phone 只有一个 framelayout
但对于平板电脑为什么有两个 framelayout
我想在设备是平板电脑(横向)时添加两个片段。但我得到下一个错误: java.lang.IllegalArgumentException:未找到片段 FragMap
的 id 0x7f0d006d (com.example.placesearch1:id/container2) 的视图我创建了两个布局:main_activity(for phone):
<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-land):
<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>
我有 RecycleView of places(main_activity 容器 1 中的布局)。当我单击该项目时,我得到一个地方的纬度和经度,并将带有 bundle 的值传递给地图片段,并将地图放入其中一个容器中:如果设备是 phone,则在容器 1 中,但如果设备是平板电脑然后在 container2.
如果设备是 phone 它可以完美运行,但如果设备是平板电脑,那么我会收到错误消息。
在 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();
}
从 GetPlace 方法中删除这一行
.replace(R.id.container1, new ListFragment())
通常,当您为 phone 或平板电脑设计 xml
时,文件应该相同,而且两者 xml
的内容也应该相同。但是在你的情况下 phone 只有一个 framelayout
但对于平板电脑为什么有两个 framelayout