面白いのはこれ。
そのため、GoogleMap の上に表示される「詳細」ビューがあり、タブレットの場合、このアクティビティはダイアログのようにスタイル設定する必要があります。
この詳細ビューには GoogleMap が含まれています。
これは Nexus 10 内では正常に機能しますが、Galaxy Note 10 2 (4.0.1) ではこのアプローチに実際の問題がいくつかあります。
グラフィカルに ActionBar のタイトルとホーム アイコンが透明になり、詳細ビューのマップも多少淡色表示されます。
以前にこの種の問題に遭遇した人はいますか? 私はこの周りに何かを見つけることができないようです。
ありがとう
アクティビティを「ダイアログ」コードにする
@SuppressLint("InlinedApi")
private static void makeActivityIntoDialog(Activity activity) {
//To show activity as dialog and dim the background, you need to declare android:theme="@style/PopupTheme" on for the chosen activity on the manifest
//This will only be called for tablets over v11 so we are ok to ignore this warning
activity.requestWindowFeature(Window.FEATURE_ACTION_BAR);
activity.setFinishOnTouchOutside(true);
activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND,
WindowManager.LayoutParams.FLAG_DIM_BEHIND);
LayoutParams params = activity.getWindow().getAttributes();
DisplayMetrics dm = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(dm);
if (dm.heightPixels < dm.widthPixels){
params.height = (4 * dm.heightPixels)/ 5 ; //relative height
params.width = (4 * dm.widthPixels)/ 7 ; //relative width
}else{
params.height = (3 * dm.heightPixels)/ 5 ; //relative height
params.width = (5 * dm.widthPixels)/ 7 ; //relative width
}
params.alpha = 1.0f;
params.dimAmount = 0.5f;
activity.getWindow().setAttributes((android.view.WindowManager.LayoutParams) params);
}
アクションバーのグラフィカルエラーの原因となっているこれらのコード行にたどり着きました。
mMapFragment = new SupportMapFragment();
if (mMapFragment.isAdded()){
getFragmentManager().beginTransaction().attach(mMapFragment);
}else{
getFragmentManager().beginTransaction().add(R.id.google_map_fragment_container, mMapFragment).commit();
}
基本的に、2 番目に GoogleMap Fragment をビューに追加すると、アクション バーにバグが発生します。