アプリで Google マップ V2 を使用していますが、向きを横向きに変更 (または基本的に向きを変更) すると、onMapClick メソッドが応答せず、向きが再度変更されても応答しません。configChange:orientation|screenSize を設定することでこの奇妙なバグを回避できることはわかっていますが、ダイアログのレイアウトは、向きが変更されたときにレイアウトをレイアウト ポートレートからレイアウト ランドスケープに変更しません。これはすべて 1 つのアクティビティにあります。誰かがこの問題に遭遇しましたか? マップの何が問題になっていますか? どこに問題があるのか、なぜリスナーを登録解除する必要があるのか わかりません。onCreateMethod に登録します。 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
DisplayMetrics dm = getResources().getDisplayMetrics();
screenWidth = dm.widthPixels;
screenHeight = dm.heightPixels;
FontUtils.setCustomFont(this, (ViewGroup) getWindow().getDecorView());
RelativeLayout topBar = (RelativeLayout) findViewById(R.id.topBar);
LinearLayout placeTextLayout = (LinearLayout)topBar
.findViewById(R.id.placeTextLayout);
placeTextView = (TextView) placeTextLayout.findViewById(R.id.placeText);
sharedPrefs = getSharedPreferences
(SkyConstants.PREFS_NAME,Context.MODE_PRIVATE);
String place = sharedPrefs.getString
(SkyConstants.PREF_LOCATION_ID,SkyConstants.PREF_LOCATION_DEFAULT);
dateTextView = (TextView) topBar.findViewById(R.id.dateText);
daysTextView = (TextView) topBar.findViewById(R.id.timeText);
updateTopBar();
setUpMapIfNeeded();
}
private void setUpMapIfNeeded()
{
if (mMap == null)
{
mMap = ((SupportMapFragment)getSupportFragmentManager()
.findFragmentById(R.id.map)).getMap();
}
if (mMap != null)
{
mMap.getUiSettings().setZoomControlsEnabled(true);
mMap.getUiSettings().setZoomGesturesEnabled(true);
mMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);
mMap.setOnMapClickListener(new OnMapClickListener()
{
@Override
public void onMapClick(LatLng point)
{
//do something
}
});
}
}