0

我正在尝试复制一些布局 xml(我无法开始工作),但我不明白这是如何工作的。它绘制了一个带有包装内容的分隔线,但它没有内容那么它是如何绘制的?

<TextView
    android:id="@+id/divider"
    android:layout_width="wrap_content"
    android:layout_height="1px"
    android:background="@color/medium_gray"
    android:layout_below="@id/spacer"
    android:layout_alignParentRight="true"
    android:layout_marginRight="@dimen/gutter_right"
    android:layout_toRightOf="@id/image" />
4

1 回答 1

1

如果我不得不猜测,他们会将内容放入代码中的某个位置。它们使背景变灰,但高度只有 1 个像素高,所以如果你用空白填充 TextView,它会形成一条高度为 1 个像素的灰线。

无论如何,常量wrap_content意味着视图的大小取决于所包含的内容。在 a 的情况下TextView,它将与它必须绘制的字符一样大。如果您将其更改为fill_parentor match_parent,则大小将根据其父级确定的尺寸进行绑定。

如果你做了这样的事情:

<TextView
    android:id="@+id/divider"
    android:layout_width="match_parent"
    android:layout_height="1px"
    android:background="@color/medium_gray"
    android:layout_below="@id/spacer"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_marginRight="@dimen/gutter_right" />

然后它将从父节点的左侧到父节点的右侧绘制一条 1 像素高的灰线,从 size 的右侧减去一个边距@dimen/gutter_right

除了没有禁用绘图的小部件之外,没有特定的理由使用TextView它,因此绘制了背景。

于 2012-10-31T15:21:56.470 回答