我有一个活动带有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 –