如何在MapFragment

时间:2015-08-27 23:18:53

标签: mapfragment

我在xml中添加了一个地图片段,并在其下面的LinearLayout中添加了一些其他视图

  <fragment
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="4"
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.MapFragment"

    />

我的活动如下: http://imgur.com/q4eFRgD(无法发布图片)

当我点击“我的路径”时,应创建新片段

    MyTrailsFragment myTrailsFragment = new MyTrailsFragment();
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    ft.add(R.id.map_activity_layout , myTrailsFragment, "mytrailsfragment").addToBackStack("").commit();

现在我不明白为什么不是覆盖全屏,新片段只占用80%,地图片段被压缩在顶部。

http://imgur.com/TZRCDh9

我怀疑地图片段在某种程度上是硬编码的活动布局,并且无法与它进行交易,我将无法隐藏它。我试图在framelayout中添加地图片段,但我在

处遇到了nullpointerexception
    MapFragment mapFragment = new MapFragment();
    FragmentManager fragmentManager = getFragmentManager();
    android.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.add(R.id.mapframelayout, mapFragment, "mapfragment").commit();

    MapFragment mf = (MapFragment) getFragmentManager().findFragmentByTag("mapfragment");

    map = mf.getMap();                   <<<<<<< HERE - NullPointerException

    map.getUiSettings().setZoomControlsEnabled(true);
    map.getUiSettings().setMyLocationButtonEnabled(true);
    map.setMyLocationEnabled(true);

所以我的问题是:

  1. 为什么地图片段显示在屏幕顶部以及如何解决此问题
  2. 我无法在java中正确添加地图片段。

0 个答案:

没有答案