Предварительный просмотр ViewSwitcher в AndroidStudio

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


person JustinHK    schedule 06.05.2015    source источник
comment
Есть ли какая-то особая причина, по которой вы используете ViewSwitcher? Это очень ограничено. Вместо этого используйте ViewPager   -  person Amir Uval    schedule 27.07.2017
comment
@auval, я использую ViewSwitcher только для отображения индикатора загрузки, пока загружается остальная часть активности, поэтому мне не нужно ничего сложного. Похоже, что ViewPager будет излишним.   -  person Paul Wintz    schedule 27.07.2017
comment
ViewSwitcher — это излишество для отображения индикатора загрузки. Используйте для этого простое представление   -  person Amir Uval    schedule 27.07.2017


Ответы (3)


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

Аналогичный вопрос для ViewFlipper был задан здесь (они оба являются прямыми подклассы 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.

person JJ86    schedule 27.07.2017

Прежде всего, если вы думаете использовать 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>
person Rahul    schedule 31.07.2017
comment
ViewSwitcher может иметь только два дочерних представления. developer.android.com/reference/android/widget/ - person Incinerator; 06.12.2017
comment
@Incinerator Я так не думаю, у вас есть ссылка на это? - person Rahul; 07.12.2017

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

person Uddhav Gautam    schedule 31.07.2017