Как поделиться взглядом на различные виды деятельности - PullRequest
0 голосов
/ 01 июля 2010

Есть ли способ разделить один и тот же объект представления между различными действиями?Например, myApp имеет 4 действия, и каждое действие показывает логотип в верхней части экрана.Теперь каждое действие инициирует 4 копии одного и того же логотипа.Так есть ли способ обойти это?
А если у 3 из 4 одинаковый логотип?

Ответы [ 2 ]

8 голосов
/ 01 июля 2010

Я не могу сказать, что это совершенно невозможно для вас. Я могу с уверенностью сказать, что вы не должны пытаться делать это или ожидать, что что-то хорошее произойдет, если вы справитесь с этим. Не боритесь с рамками, пусть это работает на вас. Если дублирование является большой проблемой, вы создаете абстрактный класс, от которого наследуются ваши действия.

Кроме того, поскольку View поддерживает ссылку на контекст, в котором они были созданы. Если вам удалось передать View из одного действия в другое, вы бы создали утечку памяти. Поскольку представление будет содержать ссылку на старую активность через контекст, в котором она была создана.

0 голосов
/ 20 января 2013

Используйте отдельный макет, чтобы сделать свой логотип. Пример: 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

Ex:

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

...

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

</RelativeLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...