Прокрутка представлений в макете кадра по оси Z

Я пытаюсь создать вид, который я нашел на «developer.android.com», а именно верхний левый на следующем изображении (мне не разрешено публиковать изображения):

Макет с сайта developer.android.com

Похоже, что можно выбирать между разными «картами», которые накладываются друг на друга.

Я обнаружил, что FrameLayout будет накладывать несколько дочерних представлений, поэтому я создал представление следующим образом:

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    >

    <LinearLayout
        android:layout_width="190dp"
        android:layout_height="230dp"
        android:layout_marginLeft="110dp"
        android:layout_marginTop="100dp"
        android:background="#FF0000"
        android:orientation="horizontal" >
    </LinearLayout>

    <LinearLayout
        android:layout_width="190dp"
        android:layout_height="230dp"
        android:layout_marginLeft="70dp"
        android:layout_marginTop="140dp"
        android:background="#00FF00"
        android:orientation="horizontal" >
    </LinearLayout>

    <LinearLayout
        android:layout_width="190dp"
        android:layout_height="230dp"
        android:layout_marginLeft="30dp"
        android:layout_marginTop="180dp"
        android:background="#0000FF"
        android:orientation="horizontal" >
    </LinearLayout>
</FrameLayout>

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

Итак, мой вопрос: как я могу создать макет, который позволяет прокручивать дочерние представления по оси Z, проводя пальцем по экрану? Заранее спасибо.


person TmKVU    schedule 01.02.2014    source источник
comment
Я бы просто использовал StackView: developer.android.com/reference/android/widget /StackView.html   -  person CommonsWare    schedule 01.02.2014
comment
Кажется многообещающим, я собираюсь попробовать это. Не могли бы вы дать ответ, чтобы я мог принять его, если он сработает? Благодарность!   -  person TmKVU    schedule 01.02.2014


Ответы (1)


Похоже, что можно выбирать между разными «картами», которые накладываются друг на друга.

В Android есть виджет StackView, который предлагает этот пользовательский интерфейс. Вы, как правило, видите это в виджетах приложений, так как типичные виджеты приложений Android, такие как Photo Gallery и YouTube, используют StackView.

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

person CommonsWare    schedule 01.02.2014
comment
Это сработает, спасибо. Я не могу клонировать ваш код, но получаю ошибку 403 Forbidden. Принял ваш ответ. - person TmKVU; 01.02.2014
comment
@tmkhva: ссылка на отдельный проект Android в довольно большом репозитории GitHub, содержащем сотни проектов Android из книги, которую я написал. Вы не можете просто клонировать эти каталоги, по крайней мере, не так просто. Однако вы можете клонировать все репо или загрузить все репо в виде ZIP-файла. Или просто просмотрите проект через веб-интерфейс GitHub и используйте его в качестве ориентира. Прошу прощения за путаницу. - person CommonsWare; 01.02.2014