Предложения по разработке пользовательского интерфейса для отображения и переключения между несколькими макетами - PullRequest
1 голос
/ 26 июня 2010

Я пытаюсь создать приложение, которое предлагает пользователю 3 различных вида макетов. Единственной общей частью для всех 3 будет TextView (расположенный вверху), который будет отображать информацию, относящуюся к текущему отображаемому макету, и 3 кнопки для выбора необходимых макетов.

Есть ли какой-нибудь способ, которым мы можем создать этот пользовательский интерфейс в XML, чтобы сохранить только одну постоянную часть (верхний TextView) и динамически отображать любой из 3 макетов под ним? Было бы лучше создать отдельные XML для каждого из макетов (каждый из которых включает в себя верхний TextView в них)? ИЛИ было бы лучше сделать это с помощью кода?

Важно быстрое переключение между 3 макетами.

Цените любые идеи по этому вопросу.

ТИА

[ПРАВИТЬ 1] На самом деле это 3 разных макета, с несколькими «дочерними» макетами и видами внутри каждого из них. Может ли ViewFlipper использоваться для переключения между ними? Я думал, что ViewFlipper был только для переключения между элементами View?

У меня есть они сейчас в отдельных XML-файлах, но я ищу какой-нибудь способ их быстрой загрузки и выгрузки. Не уверен, как сделать сокрытие, попробую почитать об этом. [/ EDIT 1]

Ответы [ 2 ]

0 голосов
/ 26 июня 2010

Я бы рекомендовал использовать Viewflipper для ваших целей.

Общая часть макетов должна храниться вне видоискателя. Viewflipper может быть объявлен в XML как

    <ViewFlipper android:id="@+id/splash_more_flipper"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:outAnimation="@anim/push_left_out"
        android:inAnimation="@anim/push_left_in">

Вы можете предоставить свои собственные версии анимации входа и выхода, если она существует в /res/anim.

.

Переключение между представлениями в вашем видоискателе очень легко. Здесь представление переворачивается при нажатии кнопки.

mFlipper = ((ViewFlipper) this.findViewById(R.id.splash_more_flipper));

    Button next = (Button) findViewById(R.id.next);
        next.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                mFlipper.showNext();
                mContainer.startAnimation(anim);
            }
        });
    }

Вы также можете добавить кнопку, чтобы показать предыдущий вид и вызвать

mFlipper.showPrevious();

при нажатии кнопки.

Надеюсь, это поможет.

0 голосов
/ 26 июня 2010

Я бы создал

  • один основной макет
  • несколько отдельных XML-макетов для 3-х макетов
  • Я бы использовал директиву include в основном макете для загрузки в 3 макета XML
  • либо скрывайте их по отдельности, либо используйте ViewFlipper для быстрого их изменения
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...