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