android - 如何检查片段中的视图是否出现在当前窗口中或不在当前窗口中?
问题描述
我里面有一个滚动视图和文本视图,我想知道它是离开窗口还是仍然在窗口内。
scrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
@Override
public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
L.e(" isShown " + textView.isShown());
}
});
提前致谢。
解决方案
使用下面的代码。这对我来说非常有用
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);
}
}
}
});
}
}
推荐阅读
- json - 带有 lint 包的 JSON 解码函数输出类型
- paypal - 为什么我收到 PayPal API 授权错误?
- sql - 在 SQL Server 的聚合函数中包装聚合
- swift - 检查一个范围是否在另一个范围内
- vb.net - 点网浏览器 JSValue
- python - 我的父类 __init__() 有三个参数,我只想使用它的两个参数?
- sql-server - EF Core 3.1 OrderByDescending 好奇的 T-SQL 翻译
- .net - 使用 dotnet run --project 选项时出现 NullReferenceException
- html - 显示灵活的图像网格
- python - 如何使用 datetime 库和 strptime 方法将 '12/01/2020' 转换为 datetime 对象?