1

我通常通过代表一种布局的片段来组织我的代码/逻辑。现在我需要一些相对简单的表单来从用户那里获取输入数据,这些表单在目的上有些相关。

假设我有 3 个屏幕,我可以创建 3 个片段来处理它们(显示视图、读取输入、提交......)。或者我应该使用一个片段,并使用 FrameLayout 创建一堆布局。我在想,堆叠所有 3 个视图并隐藏/显示我喜欢的视图。但是文件

通常,应该使用 FrameLayout 来保存单个子视图,因为很难以一种可缩放到不同屏幕尺寸的方式组织子视图,而不会使子视图相互重叠

有什么好的方法可以做到这一点,或者我应该为此创建多个片段(这样做的缺点是很多小类和重复的代码。我可能会使用基类,但仍想探索其他选项)

谢谢。

4

1 回答 1

1

听起来您并不真正关心视图是否在 中相互重叠FrameLayout,或者实际上它们应该重叠,因为您希望一次只显示一个。 FrameLayout当然可以显示堆叠的子视图,每个视图都占据其全部宽度和高度,并且如果您将未使用视图的可见性设置为INVISIBLEor GONE,如果它们恰好位于可见视图上方,它们将不会拦截屏幕按下或聚焦用户正在与之交互。

在可读性和代码维护方面,我认为交换片段更有意义,即使有更多的内存开销。布局管理可以封装在各个片段中,您无需担心显示/隐藏视图,因为片段事务会处理这方面的问题。

于 2013-02-03T04:52:37.277 回答