Android布局 - 绘制分隔符,它是如何工作的?

时间:2012-10-31 15:12:36

标签: android android-listview

我正在尝试复制一些布局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" />

1 个答案:

答案 0 :(得分:1)

如果我不得不猜测,他们会在代码中的某处放置内容。它们使背景变为灰色,但高度仅为1像素高,因此如果用空格填充TextView,它将形成一条高度为1像素的灰线。

无论如何,常量wrap_content意味着视图的大小取决于包含的内容。在TextView的情况下,它将与它必须绘制的字符一样大。如果您将其更改为fill_parentmatch_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像素高灰线,从大小@dimen/gutter_right右侧减去一个边距。

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