0

在我的应用程序中,我有一个要填写的表格,其中包含 10-15 个字段。所以我认为让它交互更有意义,而不是一次显示所有 10-15 个字段。

我希望它像:

应用程序:作为文本的 question1

用户:editText 中的 answer1

App 和 User 将是它们各自的 ImageView。

根据答案,将显示第二个问题。

方法 1:将所有 imageViews、TextViews 和 EditText 字段的可见性设置为 false,并在回答上一个问题后使其可见(下一个问题文本将取决于答案)

实际上我这样做了,但有几个问题:

问题 1:我将布局设置为 ScrollView,因此用户可以滚动到布局的底部(视图不可见),这告诉他这是一个视图不可见的长表单。

问题 2:所有问题都是 TextViews,但所有答案字段都不是 EditText ,有些是微调器,有些是复选框。所以取决于前面的答案,如果我必须显示微调器或复选框将不起作用(如果我跳过任何不可见的视图并进入下一个视图,它会创建空白空间)

方法2:动态创建所有视图(我相信这需要一些时间,这又是一个用户体验问题)

有没有更好的方法来实现我想要的?如果有解决方案,请告诉我如何解决我的问题 1 和 2

4

2 回答 2

2

使用ViewStub而不是制作不可见的视图。这样它就不会占用布局上的任何空间。

于 2012-07-17T09:41:56.733 回答
1

那么最简单的一个是你的向导/问卷的每个“部分”都可以是一个单独的活动。

但是,对于此类任务,我更喜欢在同一活动中添加和删除元素。

您可能要考虑的另一点是导航,即不仅要前进到下一个问题,还要回到前一个问题。跟踪单个活动中的状态并不算太糟糕,但是切换到前一个活动可能会更简单,因为每个活动只跟踪其下一个和以前的活动。

于 2012-07-17T09:31:59.130 回答