我有一個xml佈局文件主要包含兩個textview A/B和一個視圖C. 比我有兩個其他xml佈局文件option1
和option2
。 是否有可能在運行時將option1
或option2
通過Java加載到C中?如果是這樣,我必須使用什麼功能?Android佈局替換視圖與運行時的另一個視圖
146
A
回答
319
您可以取代在任何時間任何觀點。
int optionId = someExpression ? R.layout.option1 : R.layout.option2;
View C = findViewById(R.id.C);
ViewGroup parent = (ViewGroup) C.getParent();
int index = parent.indexOfChild(C);
parent.removeView(C);
C = getLayoutInflater().inflate(optionId, parent, false);
parent.addView(C, index);
如果你不想更換現有查看,但在初始化時選項1 /選項2之間選擇,那麼你可以這樣做更容易:
ViewGroup parent = (ViewGroup) findViewById(R.id.parent);
View C = getLayoutInflater().inflate(optionId, parent, false);
parent.addView(C, index);
:父佈局,然後設置
android:id
根據視圖結構,您必須將「索引」設置爲適當的值。你也可以使用一個ViewStub:增加你的C視圖ViewStub然後:
ViewStub C = (ViewStub) findViewById(R.id.C);
C.setLayoutResource(optionId);
C.inflate();
這樣,你就不必擔心上面的「指數」值,如果你將要調整你的XML佈局。
36
如果你這樣做,很多時候,你可以使用一個ViewSwitcher或ViewFlipper緩解視圖替換。
相關問題
- 1. Android:動態替換佈局的視圖
- 2. 用另一個視圖替換視圖
- 3. OBJC視圖替換另一個視圖
- 4. 用另一個視圖替換視圖
- 5. 在android中動態替換另一個視圖的視圖?
- 6. Android自定義列表視圖佈局到另一個佈局
- 7. Android - 顯示鍵盤時;隱藏一個佈局視圖並且屏蔽另一個佈局視圖。怎麼樣?
- 8. 佈局視圖下方另一個編程創建的視圖
- 9. 從另一個佈局訪問視圖
- 10. 如何用ViewFlipper中的另一個視圖替換視圖
- 11. 視圖在相對佈局中與另一個視圖一起移動?
- 12. Android佈局:每行一個圖像和兩個EditText視圖
- 13. 佈局中的Android視圖
- 14. 如何用另一個替換局部視圖?
- 15. Android:如何動態替換一個列表視圖與另一個像Instagram一樣的列表視圖onClick?
- 16. ASP.NET MVC調用另一個局部視圖的局部視圖
- 17. 將視圖/佈局充氣到另一個佈局?
- 18. 如何將視圖/佈局充氣到另一個子佈局?
- 19. 包含佈局在另一個佈局中填充視圖
- 20. 轉換動畫與視圖佈局
- 21. Android - 在運行時縮放視圖組(佈局)
- 22. 切換視圖/佈局
- 23. 對另一個視圖進行視圖
- 24. Android佈局與自定義視圖
- 25. 相對佈局與列表視圖android
- 26. Android更新佈局/視圖
- 27. Android相對佈局從另一個視圖alignCenter
- 28. 與iPhone 5視圖佈局
- 29. 從另一個局部視圖渲染局部視圖
- 30. 從另一個局部視圖刷新局部視圖,asp.net mvc4
我必須刪除片段,還是將片段也刪除? – 2014-07-07 23:59:56
@KarlMorrison這個問題已經快4年了,與碎片無關。我建議提交一個新問題和/或看一下'android.app.FragmentTransaction',它是'replace()'方法。 – lupz 2014-07-11 09:13:41
這太遺憾了你的回答太複雜了 - 對於新手Android程序員來說:-( – 2015-02-04 21:07:09