代码之家  ›  专栏  ›  技术社区  ›  JP Ventura

更改过多布局的可见性是否会导致性能问题?

  •  1
  • JP Ventura  · 技术社区  · 8 年前

    假设你有一个 FrameLayout LinearLayouts ,其中每次只有一个可见。

    每个 LinearLayout 是一个复杂的视图,包含 Button EditText , TextView

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <LinearLayout
            android:id="@+id/alice
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:visibility="visible">
    
            <!-- complex stuff -->
    
        </LinearLayout>
    
        <!-- many more linear layouts... -->
    
        <LinearLayout
            android:id="@+id/juliett
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:visibility="gone">
    
            <!-- last complex stuff -->
    
        </LinearLayout>
    
    </FrameLayout>
    

    1. 更改
    2. 鉴于这是一个问题,为什么要使用 ViewFlipper 不会降低应用程序的性能?
    3 回复  |  直到 8 年前
        1
  •  1
  •   Douglas Drumond Kayama    8 年前

    这是一种糟糕的做法,因为代码很容易变得一团糟。当您将可见性设置为 GONE INVISIBLE ). 不过,该视图占用了一点内存。根据您正在做的事情,考虑使用 ViewGroup.removeView() .

    很难说没有基准,但理论上不应该有 表演 问题。

        2
  •  1
  •   Emre Aktürk    8 年前

    °f如果您的视图是同质的,最好的方法是实现一个自定义视图,并提供一个类来更改状态。例如,将Alice对象设置为自定义视图以显示Alice的属性,并根据业务逻辑对其进行编程更改。

    祝你好运

        3
  •  -1
  •   AKASH WANGALWAR    8 年前

    说真的,您需要考虑上述情况的片段。