マップ表示するだけだとちょっとあれなので、なんかテキスト表示したくなった。
やりかた
まずは表示するTextViewを持つレイアウトファイルを作成map_overlay.xml
そしてMapFragment継承してマップ表示するフラグメント作成
onResumeでレイアウトViewをActivityに追加する。
MyMapFragment.java
public class MyMapFragment extends MapFragment { private GoogleMap mMap; private View mLayout; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = super.onCreateView(inflater, container, savedInstanceState); return root; } @Override public void onResume() { super.onResume(); //マップにレイアウトを上かぶせ if(mLayout==null){ //新規はレイアウトファイルからインスタンス化 mLayout = getActivity().getLayoutInflater().inflate(R.layout.map_overlay, null); }else{ //すでにある場合もそのままではなぜか表示されないので、一旦削除 ((ViewGroup)mLayout.getParent()).removeView(mLayout); } getActivity().addContentView(mLayout, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); TextView textView = (TextView)mLayout.findViewById(R.id.textView); textView.setText("てすと"); } }
はまったこと
なぜかタブを切替してまた戻すとテキストが消えてしまう。なので、一旦Viewを削除してまた追加するようにしたら消えなくなった。
むずかし