Android:如何在布局中放置一个实心颜色的矩形?

12

我有一个RelativeLayout,它可以正常膨胀。我想在顶部添加一个跨越布局宽度的实心颜色矩形。我尝试将以下内容放入我的xml中:

<view android:id="@+id/top_alert"
    android:layout_width="match_parent"
    android:layout_height="2dp"
    android:layout_above="@+id/orders_gridview"
    android:layout_alignParentTop="true"
    android:background="@color/table_request_assistance"
    android:visibility="visible"/>

现在,当我尝试填充我的布局时,在LayoutInflater.createViewFromTag(第715行)处会出现NullPointerException:

if (name.equals(TAG_1995)) {

name之前是这样设置的:

if (name.equals("view")) {
    name = attrs.getAttributeValue(null, "class");
}

显然没有“class”属性。我该怎么添加?我在http://schemas.android.com/apk/res/android中找不到任何相关信息。我应该添加吗?这是标准的做法吗?看起来这应该是世界上最简单的事情。


你能否也发布异常信息? - Farooq Arshed
1
当您将<view替换为<View时会发生什么? - ianhanniballake
你可以使用一个没有文本的TextView。我点赞是因为我想知道标准答案。 - Paul Boddington
@ianhanniballake 好的,现在它已经膨胀了。那么,“view”是什么都不是,“View”是一个视图?我想知道那段代码应该做什么。在什么情况下预期名称将等于“view”?将其发布为答案,我会将其标记为正确的。 - JoeyJoeJoeJuniorShabadoo
@pbabcdefp 我有一种预感这是标准的做法。我只是打错了一个字。 - JoeyJoeJoeJuniorShabadoo
2个回答

11

对于新手,这是更通用的标记。它将在其父视图顶部打印一个10像素高的灰色矩形,跨越整个宽度。

<View android:id="@+id/rectangle_at_the_top"
    android:layout_width="match_parent"
    android:layout_height="10dp"
    android:layout_alignParentTop="true"
    android:background="#DDDDDD"
    android:visibility="visible"/>

解释:

这是矩形的ID:

android:id="@+id/rectangle_at_the_top"

这里说要使视图宽度与父视图相同:

android:layout_width="match_parent"

请注意,有时会看到"fill_parent"。已不推荐使用,建议使用"match_parent"

这意味着将高度设置为10个"独立像素高度":

android:layout_height="10dp"

你问什么是“密度无关像素”?我不完全确定,但这些人知道:Android中px、dp、dip和sp有什么区别?

这句话的意思是将矩形与父视图顶部对齐:

android:layout_alignParentTop="true"

更准确地说,它使视图的顶部边缘与父级的顶部边缘相同。想把东西放在底部?是的,你猜对了:使用layout_alignParentTop

这意味着将背景色设置为灰色:

android:background="#DDDDDD"

DDDDDD是一种颜色值。您可以在Google's Android Color Guide中找到其他颜色值的示例以及Google建议如何使用它们。

最后,这表示将此视图设置为可见:

android:visibility="visible"

这基本上是多余的,因为它们默认是可见的。其他选项包括“不可见”和“隐藏”,听起来相似但有重要区别。有关更多信息,请参见此讨论:“invisible”和“gone”的区别是什么?


3

类名区分大小写 - 在本例中,您正在使用View类,因此在XML中需要准确地使用View


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接