1

图片

在这张图片中,如何获得红色框的高度和宽度,如图所示如何在运行时找到,而不是在 XML 文件中

4

2 回答 2

3

您可以将 ListView 作为 Red Layout 的子视图。您不需要高度/宽度运行时来实现这一点。只需在 layout.xml 中的红色布局内创建 listview 并将 fill_parent 指定为 layout_height 和 layout_width。

例如:

    <LinearLayout android:id="@+id/redLayout">
  <ListView android:layout_height="fill_parent"
            android:layout_width="fill_parent"/>
</LinearLayout> 
于 2013-06-19T06:17:15.030 回答
0

查看Android SDK 站点上的查看文档。他们解释了不同的尺寸,在这里逐字复制:

大小、填充和边距

视图的大小用宽度和高度表示。一个视图实际上拥有两对宽度和高度值。

第一对称为测量宽度和测量高度。这些尺寸定义了视图在其父视图中的大小(有关详细信息,请参阅布局。)可以通过调用 getMeasuredWidth() 和 getMeasuredHeight() 获得测量尺寸。

第二对简单地称为宽度和高度,或者有时称为绘图宽度和绘图高度。这些尺寸定义了屏幕上、绘图时和布局后视图的实际大小。这些值可能(但不一定)与测量的宽度和高度不同。可以通过调用 getWidth() 和 getHeight() 获得宽度和高度。

为了测量其尺寸,视图会考虑其填充。对于视图的左侧、顶部、右侧和底部,填充以像素表示。填充可用于将视图的内容偏移特定数量的像素。例如,left padding 为 2 会将视图的内容推到左边缘右侧 2 个像素。可以使用 setPadding(int, int, int, int) 或 setPaddingRelative(int, int, int, int) 方法设置填充,并通过调用 getPaddingLeft()、getPaddingTop()、getPaddingRight()、getPaddingBottom()、getPaddingStart( )、getPaddingEnd()。

尽管视图可以定义填充,但它不提供对边距的任何支持。但是,视图组提供了这样的支持。有关详细信息,请参阅 ViewGroup 和 ViewGroup.MarginLayoutParams。

于 2013-06-19T06:05:22.193 回答