android - 如何检查 View 是否在特定区域可见或在 ScrollView 中不可见

标签 android scrollview

我的应用程序中有一个 ScrollView,这个 ScrollView 中包含许多图像,我们必须向上滚动到底部才能查看每一张图像,因为 scrollview 的面积大于屏幕尺寸。

现在的问题是,我如何检查 ScrollView 的每个图像是否在特定区域内(由我定义)。

如果图片在那个区域内,我想做点什么,如果不在那个区域内,我想做点不同的事。

请帮我解决这个问题,任何帮助都将不胜感激。

谢谢。

最佳答案

查看下面的代码,检查是否有效

public static boolean isInVisible(ScrollView scrollView, View view, Rect region, boolean relative)
{
    int top = scrollView.getScrollY() + region.top;
    int bottom = scrollView.getScrollY() + region.bottom;

    if(!relative)
    {
        // If given region is not relative to scrollView 
        // i.e 0,0 does not point to first child left and top
        top -= scrollView.getTop();
        bottom -= scrollView.getTop();
    }

    Rect rect = new Rect(region);
    rect.top = top;
    rect.bottom = bottom;
    Rect childRegion = new Rect(view.getLeft(), view.getTop(), view.getRight(), view.getBottom());

    return Rect.intersects(childRegion, region);
}

关于android - 如何检查 View 是否在特定区域可见或在 ScrollView 中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16707020/

相关文章:

android - 为 MvxFragment 设置 ViewModel

带有 wrap_content 的 Android 7 WebView

android - 无法在 FrameLayout 上滚动 2 个 ScrollView

scrollview - UIPageViewController 中的 SwiftUI rollViewDidScroll 无法正常工作

ios - UIButtons 在 ScrollView 中不起作用

iphone - UINavigationBar 和 UIScrollView 调整大小

java - 如何使用 URI (Android) 创建目录?

java - HttpURLConnection - "https://"与 "http://"

android - Git 忽略不在.gitignore、排除或配置文件中的目录

android - 当应用程序安装在 Android 上时我们如何收到通知