条件可见性消失/可见的活动绩效

问题描述 投票:0回答:3

我有一个片段,其中包含有条件显示或不显示的

LinearLayout
。就性能而言,什么是最好的?在 XML 中将
LinearLayout
标记为
android:visibility="gone"
,然后在代码中根据需要设置其可见性,或者相反?

android performance android-layout
3个回答
2
投票

使用可见性设置为 GONE 的某些视图来膨胀布局对性能不利,尤其是在视图有点复杂的情况下。

检查网址:http://magicmicky.github.io/android_development/benchmark-using-traceview/


0
投票

除非布局非常复杂并且有太多视图,否则我不会担心,这并不重要。

但是最初将其设置为

gone
似乎更合乎逻辑,除非您后来决定它应该是
visible

您也可以从用户体验的角度来考虑它,用户是否应该非常短暂地看到它然后它就消失了?或者它应该以相反的方式工作?


0
投票

我认为这两种实现的性能没有什么太大的区别,除非您在长时间运行的网络调用后隐藏布局或类似的事情,这需要一些时间来决定隐藏和显示布局或者布局太复杂.

但是,我建议您记住以下几点。

  1. 如果 Activity 的方向发生变化,您需要在重新创建 Activity 时处理
    onCreate
    onResume
    函数中的布局可见性。如果您隐藏布局并且没有在全局静态变量中跟踪它,则决策可能会丢失,并且整体布局设计可能会不一致。但是,如果您根据
    LinearLayout
    函数中所做的决定隐藏您的
    onCreate
    ,您将不会遇到这种确切的情况。
  2. 如果此
    LinearLayout
    位于您的
    RecyclerView
    ListView
    的项目内,请考虑仔细处理每个布局项目。
© www.soinside.com 2019 - 2024. All rights reserved.