回答編集履歴

1

回答の訂正

2018/06/18 14:36

投稿

kakajika
kakajika

スコア3131

test CHANGED
@@ -1,9 +1,27 @@
1
- FragmentTransactionの使い方ついて少し勘違いがあかもしれません。addなどの引数に渡すidはFragmentに設定するidで追加したい先のレイアウトに対応するid
1
+ Activity内でFragmentTransactionにるFragmentの追加を行う場合、追加先となレイアウトはidで取得される最初のレイアウトです。のでご質問のコードのように動的にinflateしたViewにFragmentのレイアウトをFragmentTransaction追加していくことはできません
2
2
 
3
3
 
4
4
 
5
- おそらく、R.id.map_layoutに対応するレイアウトがFrameLayoutやRelativeLayoutになっているために、Fragmentが上に重なって表示されてまっているのはないでしょうか?
5
+ おそらくやりたいことはLinearLayoutで縦や横並べて複数のSupportMapFragmentを表示したいということだと思うので、LinearLayoutに直接Fragmentを追加していったらどうでしょうか?
6
6
 
7
7
 
8
8
 
9
+ ```java
10
+
11
+ for (int i = 0; i < 10; i++) {
12
+
13
+ SupportMapFragment mapFragment = SupportMapFragment.newInstance();
14
+
15
+ FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
16
+
9
- もし縦方向にマップを複数表示することを期待しているなら、R.id.map_layoutに対応するレイアウトをLinearLayoutに変更してみてはどうでしょう?
17
+ transaction.add(R.id.content_layout, mapFragment); // LinearLayoutに追加していく
18
+
19
+ transaction.commit();
20
+
21
+ }
22
+
23
+ ```
24
+
25
+
26
+
27
+ マップを何らかのレイアウトに追加した上でLinearLayoutに追加していきたいというのであれば、 [前の質問](https://teratail.com/questions/129597) でお答えしたようにSupportMapFragmentをネストしたFragmentを実装してみてください。