我有一個活動帶有3個選項卡:A,B & C.對於每個選項卡,我創建了一個片段(-f)和演示者(-p)。問題是所有三個片段(A-f,B-f,C-f)是相同的,但演示者不是。所以問題是我如何避免代碼重複?我試圖創建一個BaseFragment並從Af,Bf,Cf擴展它,但是如果我在Af並且發生了某些事情(比如UI更新),那麼我會收到 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setVisibility(int)' on a null object reference
,因爲在此處的Cf被銷燬(是I對吧?)我不想用相同的佈局創建3個相同的片段。帶有不同演示者的相同片段
0
A
回答
1
我做了類似的事情,我發現使用視圖更簡單和更少的錯誤。在執行各種事務時,android片段管理器可能會出現不可預知的行爲。下面是它如何工作的一個快速的樣品:
YourActivity extends Activity {
View a,b,c;
@Override
protected void onCreate(Bundle savedInstanceState) {
a = getLayoutInflater().inflate(R.layout.YOUR_LAYOUT_ID, null);
b = getLayoutInflater().inflate(R.layout.YOUR_LAYOUT_ID, null);
c = getLayoutInflater().inflate(R.layout.YOUR_LAYOUT_ID, null);
}
}
活動是爲Android演示/控制器,所以我會在這裏,而不是繼續和有邏輯定義現在演示類的。在每個標籤頁上,您可以控制顯示哪個視圖。我沒有看到你正在執行片段轉換的代碼,所以我無法確定你的片段是否被破壞。
相關問題
- 1. 恢復ViewPager片段的演示者(MVP)
- 2. 使用不同存儲庫的同一演示者
- 3. FragmentPageAdapter中的相同片段
- 4. CSS3 PIE:相同的風格,不同的演示文稿
- 5. 相同的綁定,不同的演示文稿?
- 6. 同位素砌體產生不同的輸出相比,演示
- 7. 該片段可以在MVP中擁有演示者?
- 8. SupportMapFragment的兩個不同活動共享相同的片段
- 9. iOS中的模型,視圖和演示者的不同框架?
- 10. 使用Android相同的片段多次 - 如何有不同的onclick行動
- 11. 共享的演示者不在同一頁面上其他控件與默認演示者
- 12. 的.htaccess相同的URL帶或不帶/
- 13. 在同一片段上顯示兩種不同的激活
- 14. LightCycle - 在活動演示者中獲取片段的演示者參考(並以其他方式)
- 15. 如何使用Dagger2將演示者插入片段?
- 16. 奇怪探查行爲:相同的功能,不同的表演
- 17. MySQL - 選擇帶有不同計數的DISTINCT,相同表
- 18. Android片段backstack(更改最新更改相同片段的UI)
- 19. GWT與MVP:添加相同的演示者一個容器幾次
- 20. 顯示相同數據的第一個和第二個片段
- 21. 向具有不同字段的頁面動態顯示/添加相同表單
- 22. 帶不同模板的離子載片
- 23. 如何在不同的工作日顯示不同的片段佈局?
- 24. 片段幻燈片轉換不同步
- 25. 不能在不同的片段類
- 26. 機器人片段和活性:不同的接口,相同的實例
- 27. 帶有帶有listview片段的標籤顯示空白屏幕
- 28. 在多個片段中具有相同ID的視圖
- 29. 2具有相同實例名稱的動畫片段
- 30. 不同頁面上的相同元素顯示不同的CSS
感謝您的選擇。對於片段事務,我使用ViewPager。我不知道如果使用活動作爲主持人是一個好主意,我會谷歌它 –
片段可以工作,但你會得到的情況下,你在藍色月亮一旦崩潰,不幸的是不會有一個修復,因爲你不能編輯android源代碼。請參閱https://stackoverflow.com/questions/18710561/can-i-use-view-pager-with-views-not-with-fragments以供參考。在較大的公司中,輕量級活動例如lyft是有意義的,因爲他們已經構建了一個MVC模式https://github.com/lyft/scoop。對於較小的項目,我強烈建議讓您的活動成爲展示者/控制者,將數據綁定到視圖。 –
對於MVC/MVP/MVVM而言,Google工程師Dianne Hackborn表達的架構沒有「正確」的答案https://plus.google.com/+DianneHackborn/posts/FXCCYxepsDU –