【发布时间】:2018-05-14 09:39:09
【问题描述】:
我有一个包含LinearLayout 的片段,该片段是否有条件地显示。在性能方面什么是最好的?在 XML 中将LinearLayout 标记为android:visibility="gone",然后在代码中根据需要设置其可见性,还是相反?
【问题讨论】:
标签: android performance android-layout
我有一个包含LinearLayout 的片段,该片段是否有条件地显示。在性能方面什么是最好的?在 XML 中将LinearLayout 标记为android:visibility="gone",然后在代码中根据需要设置其可见性,还是相反?
【问题讨论】:
标签: android performance android-layout
用一些可见性设置为 GONE 的视图来膨胀布局不利于性能,尤其是在视图有点复杂的情况下。
查看网址:http://magicmicky.github.io/android_development/benchmark-using-traceview/
【讨论】:
除非布局很复杂,视图太多,否则我不会担心,不会很重要。
但最初将其设置为 gone 似乎更合乎逻辑,除非您后来决定将其设置为 visible。
您也可以从用户体验的角度来考虑,用户是否应该看到它非常短暂然后它就消失了?还是应该反过来工作?
【讨论】:
我认为这两种实现的性能没有什么太大的区别,除非您在长时间运行的网络调用后隐藏布局或类似的事情需要一些时间来决定隐藏和显示布局或布局是太复杂了。
但是,我建议您牢记以下几点。
onCreate 或 onResume 函数中的布局可见性。如果您隐藏布局并且没有在全局静态变量中对其进行跟踪,则决策可能会丢失,并且您的整体布局设计可能会出现不一致。但是,如果您根据onCreate 函数中的决定隐藏您的LinearLayout,您将不会遇到这种确切情况。 LinearLayout 在您的RecyclerView 或ListView 的一个项目内,请考虑仔细处理您的每个布局项目。 【讨论】: