我試圖實現以下設計。 TextView應該按內容佔用空間,剩下的空間就是地圖。有兩個片段的佈局:一個片段和一個帶有Google Map的片段
+----------------+
| |
| 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 |
| |
| |
+----------------+
我在哪裏犯了一個錯誤? 也許我錯了,在與幾個片段的應用程序的體系結構?
爲什麼不只是這樣做:https://developer.android.com/guide/components/fragments.html#Adding? – pskink
好吧,我想動態管理片段。 – tim4dev
您正在使用兩個片段進行管理,而您可以通過使用單個片段來完成。 –