请看一下这个 xml 布局。
<LinearLayout android:id="@+id/dataTableContainer"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:clipChildren="true">
<LinearLayout android:id="@+id/dataTable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"/>
</LinearLayout>
在运行时,“dataTable”元素填充了比“dataTableContainer”可以显示的更宽的子元素。但是,当我在 Eclipse 中检查两个元素的 mMeasuredWidth(甚至是 getWidth() 的返回值)时,它们结果是完全相同的。这不应该是这样。我的理解是,“dataTable”的孩子应该在给定“wrap_content”设置的情况下将其推入自己的宽度。相反,“dataTableContainer”应该比它小,因为它的“fill_parent”设置受屏幕大小的限制。
我还尝试将“clipChildren”设置为 false,以防宽度被容器裁剪但结果保持不变:表格和容器都具有相同的宽度。
任何人都可以解释发生了什么吗?
为了给你一些背景信息,我想要做的是收集这些元素的大小,以确定有多少“dataTable”元素位于容器外部,因此是看不见的。这反过来又需要限制用户可以拖动表格元素的距离。ScrollView 元素本身限制了运动,但是当我使用 LinearLayout 时,我需要复制该限制功能。