如何跨各种活动分享视图

时间:2010-07-01 03:48:09

标签: android view

有没有办法在各种活动中共享View的同一个对象?例如,myApp有4个活动,每个活动都在屏幕顶部显示一个徽标。现在每个活动将启动相同徽标的4个副本。那么有什么方法可以解决这个问题吗?如果4个中有3个共享相同的标识?

2 个答案:

答案 0 :(得分:8)

我不能说你完全不可能这样做。我几乎可以肯定地说,如果你管理它,你不应该尝试或期望发生任何好事。不要打架,让它适合你。如果复制是一个很大的问题,那么您可以创建一个活动继承的抽象类。

此外,由于View维护了对其创建的Context的引用。如果您确实设法将View从一个Activity传递到另一个Activity,那么您将创建内存泄漏。由于View将通过在[。]创建的Context中保存对旧Activity的引用

答案 1 :(得分:0)

使用单独的布局制作徽标。 例如: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>