2010-07-01 9 views
0

Y a-t-il un moyen de partager le même objet de la vue entre différentes activités? Par exemple myApp a 4 activités, et chaque activité montre un logo en haut de l'écran. Maintenant, chaque activité lancera 4 copies du même Logo. Alors, y a-t-il un moyen de contourner cela?
Et si 3 sur 4 partagent le même logo?Comment partager une vue entre plusieurs activités

Répondre

8

Je ne peux pas dire qu'il vous est complètement impossible de le faire. Ce que je peux dire avec presque certitude, c'est que vous ne devriez pas essayer ou espérer que quelque chose de bon se produise si vous le gérez. Ne combattez pas le cadre, laissez-le travailler pour vous. Si la duplication est le problème le plus important, créez une classe abstraite héritée de vos activités. De plus, puisque View maintient une référence au contexte dans lequel ils ont été créés. Si vous réussissiez à passer une vue d'une activité à une autre, vous créeriez une fuite de mémoire. Étant donné que la vue contient une référence à l'ancienne activité via le contexte dans lequel elle a été créée.

0

Utilisez une disposition distincte pour créer votre logo. 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> 

Cette disposition peut être inclus dans toute autre mise en page en utilisant balise include

Ex:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 

... 

<include layout="@layout/title" /> 
... 

</RelativeLayout> 
Questions connexes