我想切換佈局。當按下ImageButton地圖時,它會轉到地圖視圖,當我按下ImageButton gridview時,它會轉到GridView。android中的開關佈局
注:地圖是在另一個佈局。電網是另一個佈局和圖片在GridView控件是從另一個調用佈局
我想切換佈局。當按下ImageButton地圖時,它會轉到地圖視圖,當我按下ImageButton gridview時,它會轉到GridView。android中的開關佈局
注:地圖是在另一個佈局。電網是另一個佈局和圖片在GridView控件是從另一個調用佈局
無論是從你的點擊處理程序調用setContentView(int layoutId)
或開始新的活動,在該活動的地圖佈局。
要做到這一點的簡單方法是有2個活動,除非你有理由沒有超過一個。 GridViewActivity
MapViewActivity
當您單擊GridViewActivity上的圖像時,將啓動MapViewActivity活動,反之亦然。
只要確保你有兩個佈局中的圖像按鈕(當然ids應該是不同的)。
查找到Fragments
會爲每個視圖創建一個片段。然後,根據您用於父級佈局視圖的內容,您可以在首次顯示特定視圖時將相應的碎片添加到父級佈局。
當您在視圖之間切換時,將當前視圖(將要隱藏的視圖)放置在碎片平臺上(您還必須查看FragmentManager)。然後,當您再次切換時,您可以將已經存在的碎片彈出堆棧,並將當前碎片放入堆棧。
編輯:根據您正在開發什麼API(片段在API 13中引入),你可能需要將兼容性庫添加到您的項目
創建你的主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);
的ImageButton我以前用的佈局對於膨脹,得到另一個佈局,並將其放置在我的主佈局,但沒有顯示。你可以給我一些例子或教程或簡單的項目。提前致謝 – kongkea
時的setContentView(R.layout.my_layout),它涵蓋了所有意味着它的封面上面太ImageButton的佈局,所以我不能見上 – kongkea