マップ表示するだけだとちょっとあれなので、なんかテキスト表示したくなった。
やりかた
まずは表示する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を削除してまた追加するようにしたら消えなくなった。
むずかし