2013-03-21 50 views
1

我在我的應用中使用Google Maps V2,當我改變方向爲風景(或基本上改變方向)時,onMapClick方法不響應,甚至不響應東方之後又改變了。我知道我可以通過設置configChange:orientation | screenSize來避免這個怪異的bug,但是當orientaiton改變時,我的對話佈局不會將其佈局從佈局肖像更改爲佈局風景。 這一切都在一個活動。有沒有人遇到過這個問題?地圖有什麼問題?我不明白問題在哪裏,爲什麼聽衆應該註銷。 我在onCreateMethod中註冊它: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);谷歌地圖v2 - onclick偵聽器在方向改變後沒有響應

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 

      } 

     }); 
    } 
} 

回答

0

將onCreate()方法中的map設置爲null幫助我根據系統處理方向更改。 所以首先我設置mMap = null 然後我設置地圖。

1

這是由於創建的取向來看,如果你是在肖像模式,並且改爲橫向,它再次創建視圖,你需要重新設置onClickListener。

如果以橫向模式開始活動以縱向顯示,則會發生同樣的情況。

+0

我在onCreate方法中設置了onMap click監聽器,每當我改變方向時我都可以清楚地看到設置監聽器的方法。但聽衆不知怎麼的..我點擊並點擊,沒有任何反應。如果我改變方向回到肖像,聽衆仍然失去...... – vandus 2013-03-21 18:11:20