【问题标题】:how get coordinate of item in list view?如何在列表视图中获取项目的坐标?
【发布时间】:2019-03-12 15:14:52
【问题描述】:

我有一个 listView 有 10 个项目,从页面中心开始,所以列表的第一项不在屏幕顶部,我想获得 position第一项,当列表向上滚动并且第一项的位置到达屏幕顶部时执行某些操作,例如敬酒滚动到达页面顶部的消息。

所以我的方法是使用listView.getChildAt(0) 获取第一项的坐标 获取这个view的宽高,但是每次返回null,

仅供参考:我的 listView 位于 fragmentviewpager 中,并且 listView 有标题。

如何获取第一项的位置以通过屏幕顶部位置进行比较?

【问题讨论】:

    标签: android listview view coordinates


    【解决方案1】:

    希望对您有很大帮助。

    getChildAt 将为您提供列表中任何项目的单独视图。 getLocationOnScreen 给出视图的原始屏幕坐标。 getWidth 和 getHeight 将建立您的边界框。 getFirstVisiblePosition 和 getLastVisiblePosition 在列表中建立索引以进行搜索。

    【讨论】:

    • 我用这行代码解决了我的问题: val firstCell = scoreBoardFragmentListView.getChildAt(0) ?: return if (scoreBoardFragmentListView.firstVisiblePosition == 0) rootLayout.alpha = (firstCell.height + firstCell. top) / firstCell.height.toFloat() 否则 rootLayout.alpha = 0f
    • 是的,有几种方法。如果它合理的话,你也可以投票赞成这个答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    相关资源
    最近更新 更多