是否有一种简单的方法可以在 Android Studio 预览中的 ViewSwitcher 中的显示视图之间切换,或者是一次将 XML 换成子视图的唯一方法?
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
or对它们进行分组include
。
为所有不同的屏幕创建单独的文件,这些文件将定义您的 UIActivity
并使用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