0

我正在努力在 AlertDialog 或 SherlockDialogFragment 中显示缩略图大小的地图。

我的xml中有这个

<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" />

只有这个在我的SherlockDialogFragment

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    getDialog().setCanceledOnTouchOutside(true);
    getDialog().setTitle(offer.retailer);

    View v = inflater.inflate(R.layout.businesstmpalert, container, false);
    return v
}

我收到一个Error inflating class fragment错误

我究竟做错了什么?

4

2 回答 2

3

这不起作用,因为您正在嵌套片段(MapFragment在 a 内DialogFragment)并MapFragment<layout>.

来自http://developer.android.com/about/versions/android-4.2.html#NestedFragments

注意:当布局包含<fragment>. 仅当动态添加到片段时才支持嵌套片段。

您可以以编程方式嵌套片段:

FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.add(R.id.map_fragment_host, MapFragment.newInstance()).commit();

in ,或(最好DialogFragmentonActivityCreated()恕我直言)切换到MapView,您可以安全地将其用作<layout>. 在这种情况下,请记住将片段生命周期事件传播到https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/MapViewMapView中指定的

于 2013-04-21T10:15:46.593 回答
0
<meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

1-将这些行添加到清单文件的末尾。

如果这不起作用那么...

2-扩展 android.support.v4.app.FragmentActivity

public class MainActivity extends android.support.v4.app.FragmentActivity
于 2015-06-30T07:03:27.497 回答