web-dev-qa-db-ja.com

アイテムがRecyclerViewに完全に表示されているかどうかを確認します

RecyclerViewに特定のアイテムが表示されているかどうかを確認しようとしています。しかし、私はそれを実装することができませんでした。アイテムがRecyclerViewに完全に表示されているかどうかを判断するのを手伝ってください。

mrecylerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
        super.onScrolled(recyclerView, dx, dy);
        LinearLayout ll = (LinearLayout) recyclerView.findChildViewUnder(dx, dy);
        if (ll != null) {
            TextureVideoView tvv = (TextureVideoView) ll.findViewById(R.id.cropTextureView);
        }
    }
});

tvvビューがmrecyclerViewビュー内に完全に表示されているかどうかを確認したいと思います。

9
Alireza

LayoutManager APIを使用してロジックを作成し、RecyclerViewonScrolledメソッドで最後に完全に表示されるアイテムの位置を取得できます。

((LinearLayoutManager) vYourRecycler.getLayoutManager()).findLastCompletelyVisibleItemPosition();

ドキュメントから:最後に完全に表示されたビューのアダプター位置を返します。この位置には、最後のレイアウトパスの後にディスパッチされたアダプターの変更は含まれません。

それを使用して、RecyclerViewアダプターに更新するように通知してください。

注:onScrolledメソッドでfindViewByIdを使用している理由がわかりません。この作業は、パフォーマンスのためにRecyclerViewViewHolderに実装する必要があります。

11
lubilis