我的情况是这样的:我在运行时在一个改进方法异步请求中设置了一个recyclelerView,在循环中调用。 因此,逐项将这些项目添加到recyclerview中。
@Override
public void onResponse(Call<DirectionResults> call, Response<DirectionResults> response) {
Legs legs = response.body().getRoutes().get(0).getLegses().get(0);
NearbyBusStation current = new NearbyBusStation(currentItem, legs.getDistance().getValue(), legs.getDuration().getText());
int i;
for(i = 0; i < nearbyBusStations.size();i++){
if (current.getDistance() < nearbyBusStations.get(i).getDistance())
break;
}
nearbyBusStations.add(i,current);
mAdapter.notifyItemInserted(nearbyBusStations.size() - 1);
}
在适配器中:
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
// - get element from your dataset at this position
// - replace the contents of the view with that element
final NearbyBusStation currentItem = mDataset.get(position);
holder.name.setText(currentItem.getName().getName());
holder.distance.setText(currentItem.getDistance() +" m");
holder.time.setText(currentItem.getTime() + " a piedi");
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//I suppose that code go here
}
我希望当点击recyclerview的一个项目时,它会展开添加下面的新元素,或者清除recyclerview并添加新元素,并返回一个按钮以返回初始的recyclerview。 (点击一个公共汽车站,它将打开下一个从它通过的公共汽车) 我尝试使用外部库来创建可扩展的Recyclerview,但是它们与固定项目一起工作得非常好,在我的情况下,项目是在运行时通过改造添加的。 如果在onBindViewHolder里面使用onclick是正确的,怎么样?用另一个适配器? 我需要逐个插入项目,因为我使用这个库来制作动画
compile 'jp.wasabeef:recyclerview-animators:2.2.4'
只能逐个插入或删除元素,但如果有问题,我可以毫无问题地更改动画库。
提前谢谢!