所以,我试图把一些片段放在一起。我有一个 TabActivity 扩展 FragmentActivity
在 TabActivity 内我有 4 个标签扩展 Fragments(android.support.v4.app.Fragment)
在其中一个片段中,我希望谷歌地图占据屏幕的某些部分。我有 ViewPager 在 TabActivity 中的视图之间切换。在我的项目中,我有
Android Private Libraries
-Google-play-services.jar -android-support-v4.jar
我的清单有我唯一的 API 密钥。
但是,当我按下应该保存地图的选项卡时,我得到一个空屏幕:
包含地图的片段:
public class MyTripsFragment extends Fragment
{
private SupportMapFragment fragment;
private GoogleMap map;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
try{
return inflater.inflate(R.layout.view_mytrips, container, false);
}
catch(Exception e){
e.printStackTrace();
}
return null;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
FragmentManager fm = getChildFragmentManager();
fragment = (SupportMapFragment) fm.findFragmentById(R.id.map);
if(fragment == null)
{
fragment = SupportMapFragment.newInstance();
map = fragment.getMap();
fm.beginTransaction().replace(R.id.map, fragment).commit();
}
}
并且 XML(从我读过的内容来看,由于我的 viewpager 不应该包含 Fragment,
替换 Fragment 时出现 IllegalStateException)
<?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:id="@+id/mapContainer">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/map">
</RelativeLayout>
</RelativeLayout>
那么我怎样才能让地图加载地图呢?我是否遗漏了一些小东西,或者我是否以错误的方式解决了这个问题?我尝试了很多不同的东西,但没有什么能得到我想要的。