2015-05-06 4 views
13

Есть ли простой способ переключения между отображаемым представлением в ViewSwitcher в предварительном просмотре Android Studio или является единственным способом поменять XML для под-представлений по одному за раз?Предварительный просмотр ViewSwitcher в AndroidStudio

+0

Есть ли какая-либо особая причина, почему вы используете ViewSwitcher? Он очень ограничен. Вместо этого используйте ViewPager – auval

+1

@auval, я использую ViewSwitcher для отображения индикатора загрузки, пока остальная часть активности загружается, поэтому мне не нужно ничего сложного. Похоже, что ViewPager будет излишним. – PaulrBear

+0

ViewSwitcher - это избыток для показа индикатора загрузки. Используйте простой вид для этого – auval

ответ

5

К сожалению, в Android Studio отсутствуют какие-либо атрибуты XML или какие-либо опции, которые могут помочь вам определить отображаемое представление.

Аналогичный вопрос для ViewFlipper был задан here (оба они являются прямыми подклассами ViewAnimator).

Однако тогда и только тогда, когда ваши взгляды большие, как на экране, вы могли бы использовать include тег, например:

<ViewSwitcher 
    android:id="@+id/myViewSwitcher" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <include 
     layout="@layout/first_view"> 
    </include> 

    <include 
     layout="@layout/second_view"> 
    </include> 

</ViewSwitcher> 

Затем вы можете увидеть макеты в отдельном файле XML.

+0

Да, это хорошая практика – MrLeblond

0

ViewPager может легко решить ваши проблемы.

ViewPager (может содержать несколько видов). ViewPager - это вид контейнера массива для объектов View. У вас может быть поворот ViewPager (например, вращение массива) или другие методы для замены внутри видов. И вы можете создавать свои внутренние представления на основе Factory DP, так что происходит меньше обработки (общие ресурсы).

Они упомянули здесь прокручивающийся вид (Примечание: вам просто нужны собственные методы прокрутки, если вы не хотите использовать поворот по умолчанию ViewPager).

Создание пойло: https://developer.android.com/training/implementing-navigation/lateral.html

ViewPager для экрана слайдов:https://developer.android.com/training/animation/screen-slide.html

1

Прежде всего, если вы соберетесь использовать ViewSwitcher, только для показа ProgressDialog тогда вы не делаете это таким образом, в котором это должно быть. ViewSwitcher обычно используется для изменения макета Activity. В вашем случае ProgressDialog не является View вашего Activity, а просто небольшим помощником, который указывает на какой-то процесс. Итак, коротко ViewSwitcher следует использовать где-нибудь, где вы хотите изменить полный экран Activity.

В вашем случае вы можете разделить макет на более мелкие файлы макета и сгруппировать их с помощью merge или include.

Создайте отдельные файлы для всех разных экранов, которые определят пользовательский интерфейс вашего Activity и сгруппируйте их, используя include.

Для примера мы можем создать небольшое приложение для Введении вещь с помощью ViewSwitcher -

  1. Первый экран - my_product.xml - это макет будет определять кое-что о продукте.

  2. Второй экран - about_us.xml - этот макет будет описывать вашу компанию.

  3. Третий экран - thank_you.xml - сказать спасибо вашим пользователям.

Группа их в любом контейнере View.

<ViewSwitcher 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <include 
     layout="@layout/my_product"/> 

    <include 
     layout="@layout/about_us"/> 

    <include 
     layout="@layout/thank_you"/> 

</ViewSwitcher> 
+0

ViewSwitcher может иметь только два дочерних представления. https://developer.android.com/reference/android/widget/ViewSwitcher.html – Incinerator

+0

@ Incinerator Я так не думаю, есть ли у вас какие-либо ссылки на это? – Rahul