【问题标题】:Google map in fragment class not reloading in android片段类中的谷歌地图没有在android中重新加载
【发布时间】:2014-02-01 10:16:16
【问题描述】:

在我的应用程序中,我正在导航抽屉片段类中加载地图。 我第一次打开地图片段时,它向我展示了地图,但第二次出现致命异常-

E/AndroidRuntime(5881): java.lang.IllegalArgumentException: No view found for id 0x7f050025 (com.example.myapp:id/mapfragment) for fragment Fragment{41d89968 #1 id=0x7f050025}

xml代码-

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mapLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <fragment
        android:id="@+id/mapfragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.MapFragment" />

</LinearLayout>

java代码-

View v;
Fragment mf;
MapFragment m;
private GoogleMap map;
@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
try {
            //Fragment videoFragment = new DealerLocations();
            v = inflater.inflate(R.layout.map, container, false);
        } catch (InflateException e) {
        }
Fragment mf = new Fragment();
        mf.getFragmentManager();
        FragmentManager fragmentManager = getFragmentManager();
        fragmentManager.beginTransaction().replace(R.id.mapfragment, mf).commit();

        m= (MapFragment) getActivity().getFragmentManager().findFragmentById(R.id.mapfragment);
        map = m.getMap();
}

我还浏览了许多链接,例如-When inflating fragment which was previously inflated app crashesAndroid, java.lang.IllegalArgumentException: No view found for id [..] for fragment [..],但没有得到解决方案。 有什么解决办法吗?

【问题讨论】:

  • 我已经添加了该部分。再次查看我的问题。第一次当我选择选项时,我的地图活动向我展示了地图..但是当第二次给出异常时
  • 对不起,不是他弄错了。你的错误在这里fragmentManager.beginTransaction().replace(R.id.mapfragment, mf).commit();您的日志显示 No view found for fragment 找不到 id/mapfragment
  • 那是什么错误?我该怎么办??
  • 使用接口作为活动的回调,并从活动中用新的片段替换现有片段
  • 如果你想要fragment中的地图,你应该使用MapView

标签: android google-maps fragment


【解决方案1】:

也许你可以试试这个:

m= (MapFragment) getActivity().getFragmentManager().findFragmentById(R.id.mapfragment);
map = m.getMap();

getActivity().getFragmentManager().beginTransaction().replace(R.id.mapfragment, mf).commit();

【讨论】:

    猜你喜欢
    • 2013-11-04
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2017-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多