删除父布局时,片段不调用onDestroyView

时间:2014-12-18 17:35:23

标签: java android android-layout android-fragments

我遇到了一个非常奇怪的布局问题&片段。

我被指派修复一个逻辑非常差的应用程序。设计。它有单一的活动和通过简单地删除包装器上的内容(LinearLayout)并向其添加视图来完成所有布局更改。

我一直试图用<片段>内。它工作得很好。但是当我用不同的内容更改包装内容(removeAllViews())然后尝试再次使用片段重新填充布局时,我得到了异常:

12-18 18:28:36.711: E/AndroidRuntime(11192): Caused by: java.lang.IllegalArgumentException: Binary XML file line #7: Duplicate id 0x7f07014d, tag null, or parent id 0x0 with another fragment for com.test.fragments.SearchTabhostFragment

当我删除父布局(包装器)时 - 片段没有执行任何生命周期函数(onPause,onStop,onDestroyView等)。

充气&稍后重新充气: LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = inflater.inflate(R.layout.search, wrapper);

毁: if (wrapper.getChildCount() > 0) { wrapper.startAnimation(out); wrapper.removeAllViews(); }

搜索XML:

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

    <fragment
        android:id="@+id/fragment1"
        android:name="com.test.fragments.SearchTabhostFragment"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true" />

</RelativeLayout>

知道我可以做什么来从FragmentManager清除它?是否有我可能会在布局上使用的事件,以确定它已被删除?

0 个答案:

没有答案