簡體   English   中英

艱巨的任務-從RecyclerViewAdapter滾動時檢測是否沒有片段或活動

[英]Hard task - Detect when scrolling from RecyclerViewAdapter no Fragment or activity

您好,我正在一個Android項目上,我需要在滾動Recycler View時進行檢測,我知道您可以將OnscrollListener從Fragment或Activity添加到RecyclerView,但是我需要從適配器進行操作才能將數據從那里傳遞到Fragment,它與實時動畫有關,這是我現在在適配器中擁有的內容

holder.linearLayout.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
            @Override
            public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {

                Intent intent = new Intent("custom-message");
                intent.putExtra("address",shop.getAddress());
                LocalBroadcastManager.getInstance(v.getContext()).sendBroadcast(intent);

            }
        });

我使用了AddonLayoutChangeListener,但是它沒有按我的預期工作,我無法弄清楚如何得到它,希望有人能幫助我

我解決了在適配器中添加方法

public Shop getItem(int position) {
        Shop shop = shopsList.get(Integer.valueOf(position));
        return shop;
    }

然后從片段添加以下內容

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
                if (recyclerView.getScrollState() == recyclerView.SCROLL_STATE_IDLE)
                {
                    int postitionCentereitem = carouselaLyoutManager.getCenterItemPosition();
                    Shop item = (Shop) mAdapter.getItem(postitionCentereitem);
                    int Id = item.getId();
                    String Address = item.getAddress();
                    lblMessage.setText(Address);
                }
            }

            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
            }
        });

希望這可以幫助其他人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM