Android:如何在布局中放置纯色矩形?
Android: How do I put a solid color rectangle in a Layout?
我有一个 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 中找不到任何接近的东西。我应该添加它吗?这是执行此操作的标准方法吗?看来这应该是世界上最简单的事情了。
类 区分大小写 - 在这种情况下,您使用的是 View class,因此在您的 [=15= 中它需要正好是 View
].
对于新手,这里是一些更通用的标记。这将在顶部打印一个跨越其父视图顶部的 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"
你问什么是"density-independent pixel"?我不是 100% 确定,但这些人知道: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"
这主要是多余的,因为它们在默认情况下是可见的。其他选项包括 "invisible" 和 "gone",它们听起来相似但有很大不同。有关详细信息,请参阅此讨论:What is the difference between "invisible" and "gone?"
我有一个 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 中找不到任何接近的东西。我应该添加它吗?这是执行此操作的标准方法吗?看来这应该是世界上最简单的事情了。
类 区分大小写 - 在这种情况下,您使用的是 View class,因此在您的 [=15= 中它需要正好是 View
].
对于新手,这里是一些更通用的标记。这将在顶部打印一个跨越其父视图顶部的 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"
你问什么是"density-independent pixel"?我不是 100% 确定,但这些人知道: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"
这主要是多余的,因为它们在默认情况下是可见的。其他选项包括 "invisible" 和 "gone",它们听起来相似但有很大不同。有关详细信息,请参阅此讨论:What is the difference between "invisible" and "gone?"