Как использовать мульти-макет в одном упражнении более эффективно в Android - PullRequest
0 голосов
/ 09 ноября 2011

Я создаю приложение для Android, и я столкнулся с некоторыми проблемами, пожалуйста, помогите мне решить их.Мои проблемы "как сделать программу с несколькими макетами в одном упражнении".Потому что в моей программе нижний колонтитул и верхний колонтитул не меняются при изменении активности.Если я использую startActivity (), текущий экран активности будет анимирован влево и появится более новая активность.Но оба действия должны иметь одинаковый нижний колонтитул и заголовок.И я должен написать две функции с одинаковым кодом.

Как решить?и какой способ изменить содержание действия, а не изменить нижний колонтитул и заголовок.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 09 ноября 2011

Предлагаю вам прочитать это .Имея фрагменты, очень удобно иметь разные макеты в одном и том же упражнении.

Вы можете иметь один FragmentActivity, и в этом упражнении вы можете размещать различные фрагменты с разным макетом в разное время.Все транзакции выполняются с помощью менеджера фрагментов.

вы можете показывать, скрывать и заменять отдельные фрагменты.

В вашем случае у вас будет одно действие фрагмента с верхним и нижним колонтитулами, а между нимиодин заполнитель для фрагментов.Тогда вы будете только менять фрагменты, вам не нужно будет начинать новую деятельность.Прочитайте о фрагментах, которые вам очень помогут в таких сценариях.

0 голосов
/ 09 ноября 2011

Прежде всего, я настоятельно рекомендую вам изменить дизайн навигации приложения.Как несколько активностей является андроид способ делать вещи.Используя библиотеку совместимости Android, вы можете использовать фрагмент с телефонами Android.

Другой способ - использовать видоискатель android, который показывает только одного ребенка за раз.Вы также можете указать входящие и исходящие анимации для дочерних представлений.Вам нужно будет переопределить метод onBackPressed, чтобы кнопка возврата работала.

0 голосов
/ 09 ноября 2011

Для своего приложения я создал элемент управления заголовка, который расширяет `LinearLayout.

public class TitleBar extends LinearLayout {
    public TitleBar(Context context) {
        super(context);
        init(context);
    }

    public TitleBar(Context context, AttributeSet attrs) {
        super(context, attrs);
        init(context);
    }

    private void init(Context context) {
        LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        inflater.inflate(R.layout.control_title_bar, this);
    }

Это позволило создать элемент управления, который я могу включить в несколько экранов действий.Чтобы включить, мне просто нужно добавить строку в мой XML-макет:

<myapp.ui.TitleBar style="@style/FullWidth" android:id="@+id/titleBar" />

Вы можете сделать аналогичную вещь с нижним колонтитулом.

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