android 遍历子view,android – 如何从RecyclerView获取子视图?

博主在尝试从RecyclerView中根据位置获取子视图,以便在点击事件之外更新工具栏的视图。当通过 EventBus 更新数据并重新设置列表时,发现获取到的视图与实际显示的视图不同步。问题在于,尽管数据已更新,但视图并未正确刷新。博主已经创建了一个自定义方法`getView`来尝试解决这个问题,但仍然遇到视图不一致的情况。
摘要由CSDN通过智能技术生成

我正试图通过职位来看孩子.点击一个项目时,我可以看到:

rvSellRecords.addOnItemTouchListener(new RecyclerItemClickListener(getActivity(), new RecyclerItemClickListener.OnItemClickListener() {

@Override

public void onItemClick(View view, int position) {

((MainActivity) getActivity()).showSellRecordFragment(position, view);

}

}));

现在我不能得到孩子的观点,没有点击 – 让我们按位置说:

rvSellRecords.someMagicalMethodWhichReturnsViewByPosition(5);

问题:如何从RecyclerView获取子视图?

编辑帐号:

Uv2pb.png

我有RecyclerView显示产品列表.当我点击它,我添加新的片段,我显示产品信息.在打开我正在更新工具栏与RecyclerView的视图 – 这是正常工作:

rvSellRecords.addOnItemTouchListener(new RecyclerItemClickListener(getContext(), new RecyclerItemClickListener.OnItemClickListener() {

@Override

public void onItemClick(View view, int position) {

sellPresenter.onSellRecordSelected(position, view);

}

}));

When I click blue button with "+", I am incrementing quantity by 1.

public void onIncrementButtonClicked(){

sellRecord.setCount(sellRecord.getCount() + 1);

showQuantity();

bus.post(new SellRecordChangedEvent(sellRecord, sellRecordPosition));

}

Then I am posting updated sellRecord to first fragment using EventBus. There I am updating list data. I supposed that updating value(sell) automatically updates adapter. Now I am getting view from adapter using custom method(getView) which was created by me(you can find it below).

@Subscribe

public void onEvent(SellRecordChangedEvent event){

sell.getSellRecords().set(event.getSellRecordPosition(), event.getSellRecord());

sell.recalculate();

int position = event.getSellRecordPosition();

View view = adapter.getView(position);

bus.post(new TransactionTitleChangedEvent(null, view));

}

This is my adapter class - I changed adapter little bit to collect view in list and added method which returns view for respective position:

public class SellRecordsAdapter extends RecyclerView.Adapter {

.....

.....

.....

List viewList;

public SellRecordsAdapter(List sellRecordList) {

.....

viewList = new ArrayList<>();

}

.....

.....

.....

@Override

public void onBindViewHolder(ViewHolder viewHolder, int i) {

.....

.....

.....

viewList.add(i, viewHolder.itemView);

}

public View getView(int position){

return viewList.get(position);

}

}

我的问题:当我更新工具栏中的视图时,我变老了.当数量为3时,我正在查看2.当数量10 – 视图为9时.

我的问题:如何使用项目的位置从回收者视图获取视图(没有点击监听器)?

BKsX5.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值