Android-存储多种布局变体的最佳方式

Android-存储多种布局变体的最佳方式,android,android-layout,android-linearlayout,android-relativelayout,Android,Android Layout,Android Linearlayout,Android Relativelayout,在我的测验应用程序中,有3种测验模式: 多选、单选和填写空白文本 到目前为止,我实现了多选模式的布局,如下所示 这里我使用复选框。对于单个选项,我将使用单选按钮,并填充空白文本字段。 我将复选框打包在相对布局中的附加线性布局中。 这意味着我只需要改变这个线性布局 我是否应该在布局文件中为3种模式创建3种内部线性布局(并在默认情况下使其不可见)?或者有更好的方法来处理这个问题。我认为您应该为测验屏幕布局设置一个布局文件,然后将选项部分布局,最好的选择是为每个问题类型定义单独的布局文件,仅包含选项

在我的测验应用程序中,有3种测验模式: 多选、单选和填写空白文本

到目前为止,我实现了多选模式的布局,如下所示

这里我使用复选框。对于单个选项,我将使用单选按钮,并填充空白文本字段。 我将复选框打包在相对布局中的附加线性布局中。 这意味着我只需要改变这个线性布局


我是否应该在布局文件中为3种模式创建3种内部线性布局(并在默认情况下使其不可见)?或者有更好的方法来处理这个问题。

我认为您应该为测验屏幕布局设置一个布局文件,然后将选项部分布局,最好的选择是为每个问题类型定义单独的布局文件,仅包含选项元素,例如:

<LinearLayout>
    <Checkbox/>
    <Checkbox/>
    <Checkbox/>
    <Checkbox/>
    <Checkbox/>
</LinearLayout>  // Similarly for other types

//其他类型的情况也类似

然后,在运行时通过
addView()
将它们添加到测验版面中的父级
。这样,您的测验布局将与选项布局中的更改分开,并且还可以在以后需要时添加更多的问题类型。

ViewStub可能就是您要查找的。您可以包括多个布局,并且只对需要的布局进行充气


我会使用片段,您可以根据需要使用的布局加载正确的片段,因此您还可以为用户的答案提供一个控制器gives@LucaNicoletti但是,他们也会使用布局。我相信OP是在问什么是定义这些布局的最佳方式相对布局,始终是最好的一种方式,但我如何在我的测验布局中为这些测验模式布局放置占位符?有多种方式可以通过编程方式添加布局,如另一个答案中提到的@jt gilkeson(使用
ViewStubs
)。