来自java:
onView(withId(R.id.recyclerView)).perform(RecyclerViewActions.scrollTo(
hasDescendant(withText(artistResult.getNameVariations().get(0)))));
尝试转换为Kotlin:
onView(withId(R.id.recyclerView)).perform(RecyclerViewActions.scrollTo(
hasDescendant(withText(artistResult.nameVariations[0]))))
我得到了这个堆栈跟踪:
Error:(63, 71) Type inference failed: Not enough information to infer parameter VH in fun <VH : RecyclerView.ViewHolder!> scrollTo(itemViewMatcher: Matcher<View!>!): RecyclerViewActions.PositionableRecyclerViewAction!
Please specify it explicitly.
我不完全确定在哪里可以明确指定“它”。如果之前出现这种情况,那是因为我没有正确初始化值,但在这里我正在调用一种方法。有什么想法吗?
答案 0 :(得分:19)
我需要将<RecyclerView.ViewHolder>
添加到scrollTo
onView(withId(R.id.recyclerView)).perform(
RecyclerViewActions.scrollTo<RecyclerView.ViewHolder>(
hasDescendant(withText(artistResult.nameVariations[0]))))
答案 1 :(得分:0)
执行以下操作: onView(withId(R.id.recycler_view)) .perform(RecyclerViewActions.scrollToPosition(11))
答案 2 :(得分:0)
对于要使用的多个VH(尤其是单个RecyclerView中的多个VH)中的,很容易感到困惑,您可以简单地使用 Generic ViewHolder ,例如RecyclerView.ViewHolder
:
RecyclerViewActions.actionOnItem<RecyclerView.ViewHolder>
RecyclerViewActions.actionOnHolderItem<RecyclerView.ViewHolder>
RecyclerViewActions.actionOnItemAtPosition<RecyclerView.ViewHolder>
等
我希望这会有所帮助。