18

是否有一种简单的方法可以在 Android Studio 预览中的 ViewSwitcher 中的显示视图之间切换,或者是一次将 XML 换成子视图的唯一方法?

4

3 回答 3

7

不幸的是,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 文件中查看您的布局。

于 2017-07-27T13:56:16.327 回答
1

首先,如果您正在考虑使用ViewSwitcher,只是为了展示,ProgressDialog那么您并没有以应有的方式进行操作。 ViewSwitcher一般用来改变布局Activity。在您的情况下ProgressDialog,它不是View您的一个,Activity它只是一个小帮手,表明某些过程正在执行。所以简而言之ViewSwitcher,应该在你想改变完整屏幕的地方使用Activity

在您的情况下,您可以将布局划分为较小的布局文件,并使用mergeor对它们进行分组include

为所有不同的屏幕创建单独的文件,这些文件将定义您的 UIActivity并使用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>
于 2017-07-31T19:15:12.317 回答
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

于 2017-07-31T17:57:21.550 回答