类型推理失败:recyclerviewactions.scrollto()



来自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.

我不完全确定可以明确指定"它"的位置。以前出现的时候,这是因为我没有正确初始化该值,但是在这里我在调用一种方法。有什么想法吗?

我需要将 <RecyclerView.ViewHolder>添加到 scrollTo

onView(withId(R.id.recyclerView)).perform(
    RecyclerViewActions.scrollTo<RecyclerView.ViewHolder>(
    hasDescendant(withText(artistResult.nameVariations[0]))))

一个人可以轻松获得混乱关于哪个VH 在许多(特别是单个RecyClerview中的多个VHS(中,您可以简单地使用通用视图持有人 I.ERecyclerView.ViewHolder喜欢:

RecyclerViewActions.actionOnItem<RecyclerView.ViewHolder>
RecyclerViewActions.actionOnHolderItem<RecyclerView.ViewHolder>
RecyclerViewActions.actionOnItemAtPosition<RecyclerView.ViewHolder>

等。

我希望这会有所帮助。

我只是要在这里留下我的解决方案。

onview(withID(androidx.preference.r.id.recycler_view((。

执行此操作:onview(withID(r.id.recycler_view(( 。

最新更新