android - 使用框架布局渲染多个 View

标签 android android-layout

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

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

Generally, FrameLayout should be used to hold a single child view, because it can be difficult to organize child views in a way that's scalable to different screen sizes without the children overlapping each other

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

谢谢。

最佳答案

如果 View 在 FrameLayout 中彼此重叠,或者事实上它们应该重叠,因为您希望一次只显示一个。 FrameLayout 当然可以显示堆叠的 subview ,每个 subview 都占据了它的全部宽度和高度,如果您将未使用 View 的可见性设置为 INVISIBLEGONE ,如果它们恰好位于用户与之交互的可见 View 上方,它们将不会拦截屏幕按下或获取焦点。

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

关于android - 使用框架布局渲染多个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14667260/

相关文章:

java - 如何维护不同屏幕尺寸的不同值文件夹的大小

android - 垂直居中 RelativeLayout

android - 我可以在自定义 View 中访问 xml 定义的 subview 的最早时间点是什么

android - 将实时音频与Android中录制的音频进行比较

android - 访问 xml 中的整数资源

android - 布局内部的 LinearLayout 与父级不匹配

java - 从扩展类调用方法时访问资源出现 NullPointerException

java - 使用单独的类时 findViewById() 不起作用

android - 嵌套的 RecyclerView 不滚动

android如何在textview中设置超链接