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