我已经创建了一个带有cardView行的回收者视图视图,在卡片视图中我已经放置了一个布局,点击它后会打开一个子视图,当我点击布局时,子视图即将到来但是数据哪个已经填充卡已经消失了。当我向下滚动子视图本身消失,卡上的数据再次填充。我很长时间没能找到解决方案,请帮助我。这就是我在适配器中添加子视图的方法
@Override
public void onClick(View view) {
mAdapter = new ViewOrderAdapter(orderList);
LayoutInflater inflater = (LayoutInflater) view.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// view = inflater.inflate(R.layout.cancelledcardview, null);
final RelativeLayout parent = (RelativeLayout) inflater.inflate(R.layout.cancelledcardview, null);
Log.i("TAG", "onclickmethod" + parent);
final View child = inflater.inflate(R.layout.vieworder_layout, null);
recyclerView = (RecyclerView)child. findViewById(R.id.recycler_view);
Log.i("TAG", "onclickmethod" + recyclerView);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(view.getContext());
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setAdapter(mAdapter);
parent.addView(child);
ImageView cancelButton= (ImageView)child.findViewById(R.id.cancelbutton);
cancelButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.i("TAG", "onclickmethodcancel button" );
parent.removeView(child);
}
});
prepareMovieData();
cv.addView(parent);
}
答案 0 :(得分:0)
您必须维持点击状态。当您滚动列表时,再次调用onBind方法并再次填充旧卡。 我建议 - 在模型中创建另外1个变量(isClicked),并在单击它时将其设置为true。 - 在适配器的onBind方法中,您必须再次编写用于创建此子视图的代码。
或者您可以使用ExpandableListView,这将更优雅地处理状态。