从mapfragments到其他片段的事务

时间:2013-06-23 16:07:08

标签: android fragment google-maps-android-api-2 mapfragment

我在将mapfragments更改为其他片段时遇到了问题。 (Listfragment或文本) 当我将fragmenttransaction用于只包含文本的片段时。地图仍在那里,新的片段在地图上。我无法删除地图。

我搜查了它,但没有找到好的方法。 有人可以提供一些想法吗?

这是扩展活动的主要活动     在这里输入代码

protected void onCreate(Bundle savedInstanceState) {
      if (android.os.Build.VERSION.SDK_INT > 9) {
          StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
          StrictMode.setThreadPolicy(policy);
        }
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
FragmentManager myfm = getFragmentManager();
FragmentTransaction ft = myfm.beginTransaction();
mymap = new StartFragment();
    ft.add(R.id.map, mymap);
    ft.commit();

这是activity_main;

中的片段
    <fragment
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.MapFragment"
    android:layout_below="@+id/Deerfield"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

这是start_fragment类

public class StartFragment extends Fragment  {
@Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle     savedInstanceState) { 
      View view = inflater.inflate(R.layout.map_layout,null);
    return view;
 } 
 }

然后是map_layout

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/map"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 class="com.google.android.gms.maps.MapFragment"/>

谢谢!

1 个答案:

答案 0 :(得分:1)

您的代码中存在一些问题。

首先,您无法替换xml中添加的片段。您只能在代码中添加此片段,然后使用FragmentTransaction.replace切换到其他片段。

另一件事是你无法在xml中的片段内添加片段。有关详细信息,请阅读此http://developer.android.com/about/versions/android-4.2.html#NestedFragments