2

我的 Android 应用程序中有一个文本字段(EditView),如果它的值无效或为空,它会更改颜色(边框)。在这种情况下, label(TextView) 也会改变它的颜色。

当我尝试使用 TextViewquery时,我看到以下内容:

[0] {
                    "id" => "field_lable",
               "enabled" => true,
    "contentDescription" => nil,
                 "class" => "android.widget.TextView",
                  "text" => "Name",
                  "rect" => {
        "center_y" => 198.5,
        "center_x" => 51.0,
          "height" => 27,
               "y" => 185,
           "width" => 82,
               "x" => 10
    },
           "description" => "android.widget.TextView@a28btb00"
}

如果我需要获取文本,我可以使用query("TextView id:'field_label'", :text)

葫芦中有什么方法可以获取TextView的颜色吗?

4

1 回答 1

3

不幸的是,这在 Android 中是不可能的。

在 Android 中,Views(也是TextView)几乎可以有任何东西作为背景,而不仅仅是颜色(位图、形状、渐变色等)。因此,无法获取视图的背景颜色(不存储)。

这不是 Calabash 的限制,而是 Android 系统的限制。如果可以访问,您可以获得 Android 视图的任何属性。

您可以在 TextView 上查询以下颜色(没有背景):

  • 文字颜色:currentTextColor
  • 提示文本颜色:hintTextColor
  • 高亮颜色:highlightColor
  • 阴影颜色:shadowColor
于 2014-04-12T11:13:54.517 回答