我有一个可以充气的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上获得了NullPointerException(第715行):
if (name.equals(TAG_1995)) {
name
因此提前设置:
if (name.equals("view")) {
name = attrs.getAttributeValue(null, "class");
}
显然没有“class”属性。我该如何添加?我在http://schemas.android.com/apk/res/android找不到任何内容。我应该加吗?这是标准的方法吗?看起来它应该是世界上最简单的东西。
答案 0 :(得分:7)
这里的新手是一些更通用的标记。这将在顶部的父视图顶部打印一个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"
你问的“密度无关像素”是什么?我不是百分百肯定,但这些人知道:What's the difference between px, dp, dip, and sp in Android?
这表示将矩形与父视图的顶部对齐:
android:layout_alignParentTop="true"
更准确地说,它使视图的上边缘与父上边缘相同。想把东西放在底部?是的,你猜对了:使用layout_alignParentTop
。
这表示将背景颜色设置为灰色:
android:background="#DDDDDD"
DDDDDD是一个颜色值。您可以在此处找到其他颜色值的示例以及Google建议如何使用它们:Google's Android Color Guide
最后,这说明使此视图可见:
android:visibility="visible"
这通常是多余的,因为默认情况下它们是可见的。其他选项包括“隐形”和“消失”,听起来相似但却截然不同。有关详细信息,请参阅此讨论:What is the difference between "invisible" and "gone?"
答案 1 :(得分:2)
类是区分大小写的 - 在这种情况下,您使用的是View类,因此它需要在XML中完全View
。