我为ListView
标头创建了一个XML布局,我还创建了一个扩展RelativeLayout
的类来操作它的元素。
其中一个元素是GoogleMap
片段。
类初始化基本上是:
public class HeaderView extends RelativeLayout {
public HeaderView(final Context context, final MyData data) {
super(context);
// Line #8 - inflation error
View.inflate(context, R.layout.view_header, this);
// Get view elements, set text, image, etc.
// Can't use getSupportFragmentManager() because class is not FragmentActivity
// How can I get the map then?
GoogleMap googleMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
}
}
传递的上下文是活动的基本上下文(this.getBaseContext()
)。
实例化此类会导致错误:
E/AndroidRuntime﹕ FATAL EXCEPTION: main
android.view.InflateException: Binary XML file line #8: Error inflating class fragment
我已经将所需的元数据添加到清单文件中,即使是因为我在另一个类中使用了另一个地图(btw扩展了FragmentActivity
,所以这里没有map的问题。)
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="@string/google_api_key"/>
所以基本上,这是一个二合一的问题,我如何正确地充气视图以及如何获得对地图片段的引用?
这是XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/white">
<fragment
android:layout_width="wrap_content"
android:layout_height="65dp"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:id="@+id/map"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<com.android.volley.toolbox.NetworkImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:id="@+id/seller_image"
android:scaleType="fitCenter"
android:layout_below="@+id/map"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp" />
</RelativeLayout>
答案 0 :(得分:1)
您是否尝试将Activity
作为参数传递给构造函数并在其上调用getSupportFragmentManager()
?