给Space小部件上色

12

我正在尝试给空间小部件添加颜色。我已经尝试使用android:foregroundandroid:background属性,但它仍然显示为透明的视图。

 <android.support.v4.widget.Space
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:foreground="@android:color/black"
    android:background="@android:color/black" />

一个空间应该是透明的。为什么不使用带有彩色背景的裸视图(或TextView或ImageView或其他)呢?对于分隔符(似乎是您想要实现的用法),我使用裸视图。 - Phantômaxx
1
为什么空间属性不起作用? - Malwinder Singh
"空间应该是透明的。" 这对于调试非常有帮助,真的很棒.... - AndrewBloom
2个回答

36
根据官方文档的定义:

Space是一个轻量级的View子类,可用于在通用布局中创建组件之间的间隙。

他们可能没有考虑到“给空白区域着色”这种情况。
其中,“空白”表示“没有颜色”,即“不可见”。
这就是我会做的事情:
<View
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:background="@android:color/black"
/>

将一个裸视图作为分隔符是我最喜欢的两个/三个技巧之一。
我还将它们用作间距和RelativeLayout中的“中心点”。


我知道这个。我在想空间是否可以被着色。 - Malwinder Singh
似乎这是不可能的。视图会非常好地完成任务。 - Phantômaxx

1

我尝试了Paul的“视图技巧”,但是在GridLayout水平/垂直约束方面遇到了问题(而且在执行过程中,一旦遇到这个视图,绘图就会停止)。 对于我来说(Studio 2.3.3,API 21),这个方法有效:

<TextView
        android:layout_width="4dp"
        android:layout_height="match_parent"
        android:layout_gravity="fill_vertical"
        android:background="@color/housetoolsBlue" />

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