2012-08-22 46 views
0

我想切換佈局。當按下ImageButton地圖時,它會轉到地圖視圖,當我按下ImageButton gridview時,它會轉到GridView。android中的開關佈局

注:地圖是在另一個佈局。電網是另一個佈局和圖片在GridView控件是從另一個調用佈局

enter image description here

enter image description here

回答

0

無論是從你的點擊處理程序調用setContentView(int layoutId)或開始新的活動,在該活動的地圖佈局。

+0

時的setContentView(R.layout.my_layout),它涵蓋了所有意味着它的封面上面太ImageButton的佈局,所以我不能見上 – kongkea

0

要做到這一點的簡單方法是有2個活動,除非你有理由沒有超過一個。 GridViewActivity
MapViewActivity
當您單擊GridViewActivity上的圖像時,將啓動MapViewActivity活動,反之亦然。
只要確保你有兩個佈局中的圖像按鈕(當然ids應該是不同的)。

1

查找到Fragments

會爲每個視圖創建一個片段。然後,根據您用於父級佈局視圖的內容,您可以在首次顯示特定視圖時將相應的碎片添加到父級佈局。

當您在視圖之間切換時,將當前視圖(將要隱藏的視圖)放置在碎片平臺上(您還必須查看FragmentManager)。然後,當您再次切換時,您可以將已經存在的碎片彈出堆棧,並將當前碎片放入堆棧。

編輯:根據您正在開發什麼API(片段在API 13中引入),你可能需要將兼容性庫添加到您的項目

0

創建你的主XML持有人視圖(如RelativeLayout的)。然後,爲gridview和mapview創建2個獨立的XML文件。

當按下適當的按鈕時,您可以充氣並將正確的視圖附加到持有人視圖。爲了提高效率,您甚至可以使用ViewHolder範例來緩存已經膨脹的視圖。

希望這有助於...

編輯基於以下問題

示例代碼(輸入上飛作爲不必在當前位置訪問我的工作版本)。

main.xml中包含

<RelativeLayout android:id="@+id/x".../> 

你也有image.xml和map.xml。在你的OnClick,嘗試:

ViewGroup myLayout = view.findViewById(R.id.x); 
    View myView; 
    if (clickedButton == imageButton) { 
     myView = getInflater().inflate(R.layout.image, myLayout, false); 
    } else if (clickedButton == mapButton) { 
     myView = getInflater().inflate(R.layout.map, myLayout, false); 
    } 
    myLayout.addView(myView); 
+0

的ImageButton我以前用的佈局對於膨脹,得到另一個佈局,並將其放置在我的主佈局,但沒有顯示。你可以給我一些例子或教程或簡單的項目。提前致謝 – kongkea