例如,在我的应用中,当用户创建新帖子时,他或她可以选择一种媒体(照片,视频,文字,地点等),然后在以下活动中查看它。
我一直这样做的方法是将所有观点(即ImageView
,VideoView
,WebView
等)放在那里,但将其可见性设置为不可见,除非用户选择该类型的媒体。
例如,在用户拍摄照片之前,所有视图都是不可见的,然后只有ImageView
可见。这看起来很浪费。在我开始活动之前,我知道用户选择了哪种类型的媒体,但仍然拥有不可见的未使用的视图。
使用重复元素(创建帖子按钮,隐私和场地按钮等)为每种类型的媒体设置单独的布局会更聪明吗?但这会违反DRY原则......
隐形观点的成本有多高?这样做的正确方法是什么?
答案 0 :(得分:1)
取决于complexity
的{{1}},我在之前的应用程序中遇到过这个问题,在第一次迭代中我确实喜欢你,但是在第二次迭代中我发现很难用一堆优化单一布局看不见的;更少Layouts
个案例来切换观看次数。
关于布局性能,也取决于布局/设计的复杂性,我不认为未使用的视图会占用大量的内存或CPU。
所以如果您的布局很简单,现在可以,如果不是,我建议为每个设计/类型使用单独的布局。
并且正如@ashishduh所说,最好将可见性设置为if else
而不是GONE
,因为父布局不会衡量INVISIBLE
次观看次数,但这并不妨碍查看内存或CPU的使用(主要在自定义视图中)