![](/img/trans.png)
[英]How to pass data from an activity to fragment through 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.