簡體   English   中英

谷歌地圖片段

[英]Google Map in fragment

這是我顯示街道視圖和Google地圖的片段,由於以下錯誤,我無法執行此操作: LogCat屏幕截圖

FATAL EXCEPTION: main
Process: com.wi.guiddoo, PID: 9788
android.view.InflateException: Binary XML file line #12: Error inflating class fragment
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
at android.view.LayoutInflater.rInflate(LayouterInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at com.wi.guiddoo.fragments.RecommendationPagerSectionMap.onCreateView(RecommendationPagerSectionMap.java:48)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501)
at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:490)
at com.wi.guiddoo.utils.FragmentUtil.changeFragment(FragmentUtil.java:94)
at com.wi.guiddoo.fragments.RecommendationPagerSection$5.onClick(RecommendationPagerSection.java:274)

我嘗試使用getChildFragmentManagergetSupportFragmentManager但是遇到了同樣的錯誤。 我也使用了SupportMapFragmentStreetViewPanoramaFragment並得到了相同的錯誤。

package com.wi.guiddoo.fragments;

public class RecomendationPagerSectionMap extends Fragment{
    double latitude,longitude;
    public String locationname;
    public View view;
    private GoogleMap googleMap;
    public TextView tv;
    public SupportStreetViewPanoramaFragment streetViewPanoramaFragment;

    public RecomendationPagerSectionMap(double Lat,double Long,String name){
        latitude=Lat;
        longitude=Long;
        locationname=name;
    }

     public RecomendationPagerSectionMap() {
        // TODO Auto-generated constructor stub
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        view = inflater.inflate(R.layout.fragment_recomendation_pager_section_maps, container, false);
        AppController.getInstance().trackScreenView(locationname.toUpperCase(Locale.US));
        init();
        return view;
    }

    public void init(){
        tv=(TextView)view.findViewById(R.id.textview_streetview);
        streetViewPanoramaFragment = (SupportStreetViewPanoramaFragment) getChildFragmentManager().findFragmentById(R.id.streetviewfragment);
        streetViewPanoramaFragment.getStreetViewPanoramaAsync(new OnStreetViewPanoramaReadyCallback() {

            @Override
            public void onStreetViewPanoramaReady(final StreetViewPanorama streetview) {
                // TODO Auto-generated method stub
                streetview.setPosition(new LatLng(latitude, longitude),100);
            }
        });
        try {
            if (googleMap == null) {
                googleMap = ((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map)).getMap();
            }
            googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
            googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitude, longitude), 17));
            googleMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)).title(locationname.toUpperCase(Locale.US)));
            //TP.setPosition(SYDNEY);
    }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}

我從這個片段中調用它,它不起作用:

 public class RecomendationPagerSection extends Fragment implements OnClickListener {...



  public void sendLatLongtoMap(final double lati,final double loni,final String name){ 
mapAndStreetView.setOnClickListener(new OnClickListener() { 
public void onClick(View v) { 
// TODO Auto-generated method stub 
    FragmentUtil.changeFragment(getActivity(),new RecomendationPagerSectionMap(lati,loni,name)); } }); }

根據您的跟蹤,問題出在您的XML文件中:

android.view.InflateException: Binary XML file line #12

檢查您的R.layout.fragment_recomendation_pager_section_maps或任何相關的xml文件。

嘗試這個

view = inflater.inflate(R.layout.fragment_recomendation_pager_section_maps,null);

並確保您的xml文件包含Google地圖片段。

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

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

</RelativeLayout>

而您使用supportfragment Manager或childfragment Manager

      googleMap = ((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM