代码之家  ›  专栏  ›  技术社区  ›  bhups

如何在各种活动中共享视图

  •  0
  • bhups  · 技术社区  · 16 年前

    有没有办法在不同的活动中共享同一个视图对象?例如,myapp有4个活动,每个活动都在屏幕顶部显示一个徽标。现在,每个活动将启动4个相同徽标的副本。那么有什么办法解决这个问题吗?
    如果四分之三的人共用同一个标志?

    2 回复  |  直到 13 年前
        1
  •  8
  •   Rich Schuler    16 年前

    我不能说你完全不可能那样做。我几乎可以肯定地说,如果你真的做到了,你不应该尝试它,也不应该期望任何好事发生。不要与框架作斗争,让它为您工作。如果复制是一个很大的问题,那么您可以创建一个抽象类,您的活动从该类继承。

    此外,因为视图维护对创建它们的上下文的引用。如果您确实设法将视图从一个活动传递到另一个活动,那么您将创建一个内存泄漏。因为视图将通过在其中创建的上下文保存对旧活动的引用。

        2
  •  0
  •   chamikaw    13 年前

    使用单独的布局制作徽标。 EX:TITLE .XML

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:background="@drawable/headercon" >
    
    <ImageView
        android:id="@+id/headerView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="centerInside"
        android:src="@drawable/header" />
    
    </LinearLayout>
    

    通过使用include标记,此布局可以包括在任何其他布局中。

    前任:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
    
    ...
    
    <include layout="@layout/title" />
    ...
    
    </RelativeLayout>