【发布时间】:2017-06-12 11:16:40
【问题描述】:
我正在尝试实现以下设计。 TextView 应该按内容占用空间,剩下的空间是一张地图。
+----------------+
| |
| Map | <-- id/fragment_container_1
| |
| |
+----------------+
| |
| TextView | <-- id/fragment_container_2
| |
+----------------+
main.xml
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:id="@+id/fragment_container_1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@+id/fragment_container_2"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
fragment_1.xml
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Client Label" />
</LinearLayout>
map.xml
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.gms.maps.MapView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/map_view_observer" />
</LinearLayout>
Java 代码:
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
// map
Fragment fragmentMap = fragmentManager.findFragmentByTag("ObserverMapFragment");
if (fragmentMap == null) {
fragmentMap = ObserverMapFragment.newInstance();
fragmentTransaction
.replace(R.id.fragment_container_1, fragmentMap, "ObserverMapFragment");
}
// fargment 1
Fragment fragmentObserver = fragmentManager.findFragmentByTag("ObserverFragment");
if (fragmentObserver == null) {
fragmentObserver = ObserverFragment.newInstance();
fragmentTransaction
.replace(R.id.fragment_container_2, fragmentObserver, "ObserverFragment");
}
fragmentTransaction.commit();
但是,之后我发现地图占据了所有可见空间。
+----------------+
| |
| |
| Map |
| |
| |
+----------------+
我在哪里做错了? 也许我在具有多个片段的应用程序架构上错了?
【问题讨论】:
-
嗯,我要动态管理碎片。
-
您使用两个片段进行管理,而您可以使用单个片段来完成。
标签: android google-maps android-layout android-fragments