Android MapFragment:填充类片段时出错

时间:2016-07-21 17:24:29

标签: android android-fragments android-viewpager android-maps-v2

我有一个水平的图像列表,当我点击图像时,它会加载一个对话框片段。该对话框片段包含一个ViewPager。视图寻呼机在PagerAdapter中加载MapFragment。我就是这样做的,

@Override
    public Object instantiateItem(ViewGroup collection, int position) {
        final LoyaltyOutlet outlet = data.get(position);
        LayoutInflater inflater = LayoutInflater.from(context);
        ViewGroup layout = (ViewGroup) inflater.inflate(R.layout.fragment_shop_item, collection, false);
        TextView address = (TextView)layout.findViewById(R.id.txt_ShopAddress);
        SupportMapFragment mapFragment = (SupportMapFragment) fragmentManager.findFragmentById(R.id.shopMap);
        mapFragment.getMapAsync(new OnMapReadyCallback() {
            @Override
            public void onMapReady(GoogleMap googleMap) {
                // Adding a marker
                MarkerOptions marker = new MarkerOptions().position(
                        new LatLng(outlet.getLattitude(), outlet.getLongitude())).title(
                        outlet.getOutletName());
                marker.icon(BitmapDescriptorFactory
                        .defaultMarker(BitmapDescriptorFactory.HUE_ORANGE));
                googleMap.addMarker(marker);
                CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(outlet.getLattitude(), outlet.getLongitude()), 10);
                googleMap.animateCamera(cameraUpdate);
            }
        });
//        GoogleMap googleMap = ((SupportMapFragment) fragmentManager.findFragmentById(R.id.shopMap)).getMap();

        address.setText(outlet.getOutletName() +"\n"+outlet.getOutletBulding()+" "+outlet.getOutletStreet()+"\n"+outlet.getOutletLocality());

        collection.addView(layout);
        return layout;

    }

这是我的情景。最初,当屏幕加载了水平图像列表时,我点击图像以加载带有地图的DialogFragment。在初始加载时它工作正常。现在,如果我再次加载相同的Dialog片段,我会收到一个错误,它会在instantiateItem中扩展布局,

  

android.view.InflateException:二进制XML文件行#38:错误   膨胀类片段

这是fragment_shop_item.xml

<FrameLayout 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"
             xmlns:attrs="http://schemas.android.com/apk/res-auto">


    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight=".25">

            <com.mobytz.utils.CustomFontTextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Medium Text"
                android:id="@+id/txt_ShopAddress"
                android:layout_alignParentTop="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                attrs:customFont="handy_bold"
                android:textColor="@color/android:black"
                android:textSize="8pt"
                android:layout_marginLeft="10dp"/>
        </RelativeLayout>

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight=".75">
            <fragment
                android:id="@+id/shopMap"
                android:name="com.google.android.gms.maps.SupportMapFragment"
                android:layout_width="match_parent"
                android:layout_height="match_parent"/>
        </RelativeLayout>
    </LinearLayout>
</FrameLayout>

不确定这里出了什么问题。

感谢。

0 个答案:

没有答案