首页 > 解决方案 > 如何检查片段中的视图是否出现在当前窗口中或不在当前窗口中?

问题描述

我里面有一个滚动视图和文本视图,我想知道它是离开窗口还是仍然在窗口内。

scrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
                @Override
                public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
                    L.e(" isShown " + textView.isShown());
                }
            });

提前致谢。

标签: androidandroid-fragmentsandroid-scrollview

解决方案


使用下面的代码。这对我来说非常有用

if (scrollView != null) {
       if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
           Rect scrollBounds = new Rect();
           scrollView.getHitRect(scrollBounds);
           scrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
               @Override
               public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
                   String title = "your title";
                   if (view != null) {
                       if (view.getLocalVisibleRect(scrollBounds)) {
                           setPageTitle("");
                       } else {
                           setPageTitle(title == null ? "" : title);
                       }
                   }
               }
           });
       }
   }

推荐阅读