我有一个活动的以下父布局:
<?xml version="1.0" encoding="utf-8"?> <ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
我还有Fragment
的{{1}}的以下布局:
ViewPager
在运行时,<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<FrameLayout
android:id="@+id/mapLayout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
</RelativeLayout>
</LinearLayout>
会填充片段的FrameLayout
方法,如下所示:
onCreateView()
预期的行为是,由 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
ViewGroup MapView = (ViewGroup) inflater.inflate(R.layout.frament_mood_map, container, false);
if(savedInstanceState == null) {
Fragment mapFragment = new SupportMapFragment();
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
//Adding map fragment to the FrameLayout.
transaction.add(R.id.mapLayout, mapFragment, "map").commit();
}
//Adding the mood panel.
ViewGroup mapLayout = (ViewGroup) MapView.findViewById(R.id.mapLayout);
mapLayout.addView(inflater.inflate(R.layout.mood_panel_layout, null));
...
return MapView;
}
和Fragment
填充的容器是View
,前者首先添加到容器中,然后后者将在地图的顶部,我想要在顶部显示一个带有按钮的小面板的地图,我无法在XML中定义FrameLayout
因为(引用文档,是的我已经尝试过做到这一点):
注意:在布局时,您无法将布局扩展为片段 包括一个。仅在添加时支持嵌套片段 到动态片段
我做错了什么?我该如何解决这个问题?
答案 0 :(得分:1)
经过数小时的摆弄并尝试找到解决方法后,我发现Google Maps Android API v2上有更新的MapView
,因此对于那些需要在{{1}内嵌套的问题页面片段ViewPager
只需使用MapFragment
。
我在以下SO问题中找到了MapView
:Should I use MapView or MapFragment