android获取view是否可见,android – 如何检查RecyclerView的第一项是否在屏幕上可见...

这篇博客探讨了如何在Android中使用RecyclerView时检查其第一项是否在用户屏幕上可见。通过添加OnScrollListener到RecyclerView,并结合LinearLayoutManager的findFirstVisibleItemPosition方法,可以判断用户滚动时第一项的状态。

是否可以检查RecyclerView的第一项或第二项是否在用户屏幕上可见?

例如,当用户向下滚动时:

if (first item not visible to user) {

// do something

}

else if ( first item is visible){

// do something

}

我目前所做的是将一个监听器添加到我的回收器中,这样当用户向下滚动时,它会做一些事情并向上滚动.

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {

@Override

public void onScrolled(RecyclerView recyclerView, int dx, int dy) {

super.onScrolled(recyclerView, dx, dy);

if (dy > 0) {

mAccountLayout.setVisibility(View.GONE);

mDateLayout.setVisibility(View.GONE);

Log.d("SCROLLINGDOWN","SCROLL");

} else {

mAccountLayout.setVisibility(View.VISIBLE);

mDateLayout.setVisibility(View.VISIBLE);

Log.d("SCROLLINGUP","SCROLL");

}

}

});

但我需要检查第一项是否可见.

解决方法:

您可以在RecyclerView.LayoutManager中找到一些辅助方法,例如,如果您使用LinearLayoutManager,请检查以下方法:

int findFirstCompletelyVisibleItemPosition() // Returns the adapter position of the first fully visible view.

int findFirstVisibleItemPosition() // Returns the adapter position of the first visible view.

int findLastCompletelyVisibleItemPosition() // Returns the adapter position of the last fully visible view.

int findLastVisibleItemPosition() // Returns the adapter position of the last visible view.

请参阅完整文档here.

在你的代码中:

recyclerView.setAdapter(adapter);

final LinearLayoutManager layoutManager = new LinearLayoutManager(context);

recyclerView.setLayoutManager(layoutManager);

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {

@Override

public void onScrolled(RecyclerView recyclerView, int dx, int dy) {

if (layoutManager.findFirstVisibleItemPosition() > 0) {

mAccountLayout.setVisibility(View.GONE);

mDateLayout.setVisibility(View.GONE);

Log.d("SCROLLINGDOWN","SCROLL");

} else {

mAccountLayout.setVisibility(View.VISIBLE);

mDateLayout.setVisibility(View.VISIBLE);

Log.d("SCROLLINGUP","SCROLL");

}

}

});

标签:android,android-recyclerview

来源: https://codeday.me/bug/20190823/1697415.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值