2013-03-06 27 views

回答

3

您可以通過2路做到這一點:

  1. 創建一個新的Activity上一個按鈕,按下開始的,將包括一個全屏幕的地圖。在此活動中創建相同的按鈕,將使您回到原來的Activity

  2. 可以programaticly更改佈局寬度在同一窗口中的一個你MapFragment長度。

第二個選項會更好,因爲您可以避免屏幕閃爍的新活動加載。

UPDATE:

關於這裏的第二個選項

是一個代碼我寫放大地圖的地圖的onClick看看這可以幫助你:

@Override 
public void onMapClick(LatLng point) 
{ 
    LinearLayout mapFrameLayout = (LinearLayout)findViewById(R.id.mapFrameLayout); 

    if (!isMapOpen)  
    { 
     LinearLayout.LayoutParams fullMapParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); 
     if (!isDetailsOpen) 
     { 
      FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
      fragmentTransaction.hide(closedDetailsFragment).commit(); 
      mapFrameLayout.setLayoutParams(fullMapParams); 
      isMapOpen = true; 
      isDetailsOpenWhenOpenedMap = false; 
     } 
     else 
     { 
      FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
      fragmentTransaction.hide(openedDetailsFragment).commit(); 
      mapFrameLayout.setLayoutParams(fullMapParams); 
      isMapOpen = true; 
      isDetailsOpenWhenOpenedMap = true; 
     } 
    } 
    else 
    { 
     LinearLayout.LayoutParams defaultMapparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 280); 
     mapFrameLayout.setLayoutParams(defaultMapparams); 
     FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
     if (isDetailsOpenWhenOpenedMap) 
     { 
      fragmentTransaction.show(openedDetailsFragment).commit();    
     } 
     else 
     { 
      fragmentTransaction.show(closedDetailsFragment).commit(); 
     } 
     isMapOpen = false; 
    } 
} 

當你看到我改變的大小其中地圖坐在FrameLayout,你可以把相同的佈局的按鈕,將其放在右側|例如右上角。當你的地圖將拉伸按鈕仍然在同一個右上角。

+1

@EmilAdz你可以詳細解釋第二個選項,如果你認爲它更好,那麼Activity?他會在哪裏返回按鈕?它應該在調整時間生成否?應該如何回到以前的狀態?在那一刻按鈕發生了什麼?屏幕閃爍是什麼意思? 10Q – Ewoks 2013-03-07 09:39:50

0

開始上點擊全屏地圖和u需要有所有的按鈕/功能,新活動..傳遞使用putExtra上開始看房requered參數(例如位置座標)瞧..;)