Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android Espresso-如何检查字符串是否缩写_Java_Android_Mobile_Android Espresso - Fatal编程技术网

Java Android Espresso-如何检查字符串是否缩写

Java Android Espresso-如何检查字符串是否缩写,java,android,mobile,android-espresso,Java,Android,Mobile,Android Espresso,我想检查我的操作栏的字符串是否不是太长,是否缩写为“…”。 我正在使用此代码检查我的操作栏标题是否正确。如果字符串太长且被缩写,则不会失败。 我也尝试过使用.iscompletelysdisplayed,但这也不起作用 onView(withId(R.id.action_bar).check(matches(withText(text))); 使用普通的文本视图,您可以编写一个小的匹配器,检查getellipsiscont是否大于0。使用工具栏时,除非你有一个自定义的TextView,否则它会

我想检查我的操作栏的字符串是否不是太长,是否缩写为“…”。 我正在使用此代码检查我的操作栏标题是否正确。如果字符串太长且被缩写,则不会失败。 我也尝试过使用.iscompletelysdisplayed,但这也不起作用

onView(withId(R.id.action_bar).check(matches(withText(text)));

使用普通的文本视图,您可以编写一个小的
匹配器
,检查
getellipsiscont
是否大于0。使用工具栏时,除非你有一个自定义的
TextView
,否则它会稍微复杂一些。您必须在
工具栏
视图中查找标题视图(使用
getChildAt
getChildCount
)并执行相同的检查。差不多

val matcher = object : BoundedMatcher<View, Toolbar>(Toolbar::class.java) {
        override fun describeTo(description: Description?) {
        }

        override fun matchesSafely(item: Toolbar?): Boolean {
            for (i in 0 until (item?.childCount ?: 0)) {
                val v = item?.getChildAt(i)
                (v as? TextView)?.let {
                    // check somehow that this textview is the title
                    val lines = it.layout.lineCount
                    if (it.layout.getEllipsisCount(lines - 1) > 0) {
                        return true
                    }
                }
            }
            return false
        }
    }

我还没有亲自测试过,但你知道了。此外,您还可以检查代码
layoutmachers
以获取一些灵感

使用普通文本视图,您可以编写一个小型
匹配器
,用于检查
getellipsiscont
是否大于0。使用工具栏时,除非你有一个自定义的
TextView
,否则它会稍微复杂一些。您必须在
工具栏
视图中查找标题视图(使用
getChildAt
getChildCount
)并执行相同的检查。差不多

val matcher = object : BoundedMatcher<View, Toolbar>(Toolbar::class.java) {
        override fun describeTo(description: Description?) {
        }

        override fun matchesSafely(item: Toolbar?): Boolean {
            for (i in 0 until (item?.childCount ?: 0)) {
                val v = item?.getChildAt(i)
                (v as? TextView)?.let {
                    // check somehow that this textview is the title
                    val lines = it.layout.lineCount
                    if (it.layout.getEllipsisCount(lines - 1) > 0) {
                        return true
                    }
                }
            }
            return false
        }
    }

我还没有亲自测试过,但你知道了。您还可以检查代码
LayoutMatchers
以获得一些启示

如果(myString.endsWith(“…”)是这样的话?我不知道如何获得实际显示的字符串。从action_栏获取字符串总是获取完整字符串,即使只有一部分显示为edif(myString.endsWith(“…”)之类?我不知道如何获取实际显示的字符串。从操作栏获取字符串始终会获取完整字符串,即使仅显示一个部分