创建新布局与使元素不可见(Android)

时间:2014-05-02 15:33:47

标签: android android-layout

例如,在我的应用中,当用户创建新帖子时,他或她可以选择一种媒体(照片,视频,文字,地点等),然后在以下活动中查看它。

我一直这样做的方法是将所有观点(即ImageViewVideoViewWebView等)放在那里,但将其可见性设置为不可见,除非用户选择该类型的媒体。

例如,在用户拍摄照片之前,所有视图都是不可见的,然后只有ImageView可见。这看起来很浪费。在我开始活动之前,我知道用户选择了哪种类型的媒体,但仍然拥有不可见的未使用的视图。

使用重复元素(创建帖子按钮,隐私和场地按钮等)为每种类型的媒体设置单独的布局会更聪明吗?但这会违反DRY原则......

隐形观点的成本有多高?这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

取决于complexity的{​​{1}},我在之前的应用程序中遇到过这个问题,在第一次迭代中我确实喜欢你,但是在第二次迭代中我发现很难用一堆优化单一布局看不见的;更少Layouts个案例来切换观看次数。

关于布局性能,也取决于布局/设计的复杂性,我不认为未使用的视图会占用大量的内存或CPU。

所以如果您的布局很简单,现在可以,如果不是,我建议为每个设计/类型使用单独的布局。


并且正如@ashishduh所说,最好将可见性设置为if else而不是GONE,因为父布局不会衡量INVISIBLE次观看次数,但这并不妨碍查看内存或CPU的使用(主要在自定义视图中)