teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

回答の訂正

2018/06/18 14:36

投稿

kakajika
kakajika

スコア3133

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