gpt4 book ai didi

android - 获取 RecyclerView 中第 n 个项目的 x/y 位置

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:20:57 26 4
gpt4 key购买 nike

我想知道如何获取 RecyclerView 中第 n 个项目的 X 或 Y 位置。如果项目当前在可见范围内,这很容易做到。但是,当 View 当前不在屏幕上时(例如,RecyclerView 上的当前可见项目范围是 4 到 7,而我感兴趣的项目是 1 或 10),似乎无法获得值(value)。

这是我尝试过的。我有以下三个字段:

private RecyclerView rv;

/* The Layout Manager of rv */
private LinearLayoutManager llm;

/* The data to be shown in the RecyclerView. */
private String[] data = {"0","1","2",...,"9"};

我在屏幕上显示了项目“2”到“5”,我想获取当前不在屏幕上的项目“9”的 X/Y 位置。所以我尝试了以下方法:

int index = 9;
View v = rv.getChildAt(index);
View v2 = llm.getChildAt(index);

不幸的是,vv2 都是空的。原因似乎是当 data 的大小为 10 时,rvllm 的 childCount 是当前的 View 数在屏幕上可见,如下所示:

int count = rv.getChildCount();
int count2 = llm.getChildCount();

两个变量都是 4(当前可见的 View 数;即“2”到“5”)。由于 recyclerView 的大小为 4,而我想查找索引 9 处的项目,因此上面返回了 null。

最佳答案

我使用以下方法获得了回收站 View 中每个项目的完美 xy:

int[] originalPos = new int[2];
view.getLocationInWindow(originalPos);
//or view.getLocationOnScreen(originalPos)
int x = originalPos[0];
int y = originalPos[1];

关于android - 获取 RecyclerView 中第 n 个项目的 x/y 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38004369/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com