Есть ли простой способ переключения между отображаемым представлением в ViewSwitcher в предварительном просмотре Android Studio или это единственный способ поменять XML для подвидов по одному?
Предварительный просмотр ViewSwitcher в AndroidStudio
Ответы (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.
Прежде всего, если вы думаете использовать ViewSwitcher
только для показа ProgressDialog
, то вы делаете это не так, как должно быть. ViewSwitcher
обычно используется для изменения макета Activity
. В вашем случае ProgressDialog
не является View
вашего Activity
, а просто небольшим помощником, который указывает на то, что выполняется какой-то процесс. Короче говоря, ViewSwitcher
следует использовать где-то, где вы хотите изменить весь экран Activity
.
В вашем случае вы можете разделить свой макет на более мелкие файлы макета и сгруппировать их, используя merge
или include
.
Создайте отдельные файлы для всех разных экранов, которые будут определять пользовательский интерфейс вашего Activity
и группировать их с помощью include
.
Например, мы можем создать небольшое приложение для знакомства, используя ViewSwitcher
-
Первый экран — my_product.xml — этот макет будет определять что-то о продукте.
Второй экран — about_us.xml — этот макет расскажет о вашей компании.
Третий экран —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>
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