Java 二进制XML文件行#17:重复id、标记null或带有另一个片段的父id
我试图将一个片段插入到另一个片段中,我成功地完成了这一操作,直到我第一次使用主片段,但当我尝试重新加载片段时,应用程序崩溃,我出现了以下错误:Java 二进制XML文件行#17:重复id、标记null或带有另一个片段的父id,java,android,xml,android-fragments,Java,Android,Xml,Android Fragments,我试图将一个片段插入到另一个片段中,我成功地完成了这一操作,直到我第一次使用主片段,但当我尝试重新加载片段时,应用程序崩溃,我出现了以下错误:,原因是:java.lang.IllegalArgumentException:Binary XML文件行#17:Duplicate id 0x7f070084,标记null,或父id 0x7f070082,带有com.example.user.unchained.FooterHome的另一个片段 我尝试了两种解决方案:第一种是覆盖onDestroyVi
,原因是:java.lang.IllegalArgumentException:Binary XML文件行#17:Duplicate id 0x7f070084,标记null,或父id 0x7f070082,带有com.example.user.unchained.FooterHome的另一个片段
我尝试了两种解决方案:第一种是覆盖onDestroyView
方法
@Override
public void onDestroyView() {
super.onDestroyView();
PlaceholderFragment f = (PlaceholderFragment) getFragmentManager()
.findFragmentById(R.id.f);
if (f != null)
getFragmentManager().beginTransaction().remove(f).commit();
}
第二个是在视图已经存在的情况下进行冲浪,并在显示新视图之前尝试将其删除
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (v != null) {
ViewGroup parent = (ViewGroup) v.getParent();
if (parent != null)
parent.removeView(v);
}
v = inflater.inflate(R.layout.fragment_homes, container, false); }
即使这两种解决方案对我不起作用,但仍然存在问题,请你提出其他解决方案
主要片段XML布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/dark_grey"
android:id="@+id/fHome"
tools:context="com.example.user.unchained.HomesActivity$PlaceholderFragment">
<ListView
android:id="@+id/homeList"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:dividerHeight="1dp"
android:choiceMode="singleChoice"
android:listSelector="@drawable/list_row_selector" />
<fragment
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:name="com.example.user.unchained.FooterHome"
android:layout_alignParentBottom="true"
android:id="@+id/f"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
tools:layout="@layout/footer_home" />
</RelativeLayout>
片段XML布局:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000"
android:id="@+id/homeFooter"
tools:context="com.example.user.unchained.FooterHome">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="What's New ?"
android:textSize="16dip"
android:layout_marginTop="12dip"
android:layout_marginLeft="10dip"
android:drawableLeft="@drawable/status"
android:id="@+id/watsN"
android:textColor="@color/connexion_button"
android:layout_gravity="left|top" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text=" | "
android:textSize="25dip"
android:layout_marginTop="6dip"
android:layout_marginLeft="145dip"
android:textColor="@color/connexion_button"
android:layout_gravity="left|top" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Check In"
android:textSize="16dip"
android:layout_marginTop="12dip"
android:layout_marginLeft="165dip"
android:drawableLeft="@drawable/checkin"
android:id="@+id/checkIn"
android:textColor="@color/connexion_button"
android:layout_gravity="left|top" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text=" | "
android:textSize="25dip"
android:layout_marginTop="6dip"
android:layout_marginLeft="265dip"
android:textColor="@color/connexion_button"
android:layout_gravity="left|top" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text=" Picture"
android:textSize="16dip"
android:layout_marginTop="12dip"
android:layout_marginLeft="290dip"
android:drawableLeft="@drawable/camera"
android:id="@+id/postPic"
android:textColor="@color/connexion_button"
android:layout_gravity="left|top" />
</FrameLayout>
我认为您应该使用getChildFragmentManager。不能在XML中使用子片段 例如,您应该如何做:
if (getChildFragmentManager().findFragmentByTag("settingsFragment") == null) {
FragmentTransaction ft = getChildFragmentManager().beginTransaction();
settingsFragment = new FastSettingsFragment();
ft.add(R.id.container, settingsFragment, "settingsFragment");
ft.commit();
}