二进制XML文件行#21:错误膨胀类片段

时间:2015-05-21 21:09:36

标签: android fragment

我有一个地图片段类,我在它上面添加了一个按钮。当我点击它时,我正在使用简单的textview和save按钮调用另一个片段类。单击保存时,我想返回我的mapfragment类。现在,当我点击保存并返回时,它会抛出一个错误。错误是在给班级膨胀时>只是想知道从后台弹出时我是否做错了什么。我只想删除最后一个并返回我的地图。 我的地图布局如下:

<LinearLayout 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/map"
        android:name="com.google.android.gms.maps.MapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="vertical">


    </fragment>
</LinearLayout>

MapFragment如下:

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,   Bundle savedInstanceState) {
  View v = inflater.inflate(R.layout.maplayout,container,false);
  return v;
}


@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    FragmentManager fm = getChildFragmentManager();
    fragment = (MapFragment) fm.findFragmentById(R.id.map);
    if (fragment == null) {
        fragment = MapFragment.newInstance();
        fm.beginTransaction().replace(R.id.map, fragment).commit();
    }
}

背面方法:

        FragmentManager fm = getActivity().getFragmentManager();
        fm.popBackStack("TEXT_FRAGMENT", FragmentManager.POP_BACK_STACK_INCLUSIVE);

                    fm.beginTransaction()
                            .replace(R.id.map_tab,
                                    mapFragment,
                                    "maptab")
                            .addToBackStack("maptab")
                            .commit();

错误是:片段没有视图。

map_tab是添加了MapFragment的标签。地图片段添加在此之上。

编辑:在后面的方法中,我添加了fm.popBackStack(“TEXT_FRAGMENT”,FragmentManager.POP_BACK_STACK_INCLUSIVE

但是当我回到我的Map Fragment并且在膨胀时我得到了错误,这给了我错误。

2 个答案:

答案 0 :(得分:0)

不要提交新的片段。代替, 查看getFragmentManager().popBackStack()方法(有几种方法可供选择)

http://developer.android.com/reference/android/app/FragmentManager.html#popBackStack()

答案 1 :(得分:0)

终于有了工作。在添加新片段之前必须删除mapfragment。