我有一個recyclerview,其中onLongClick()是一個項目,我正在顯示一個按鈕。但when scroll down the recycler view and scrolling back, that button is showing on top of another item or sometimes it is not showing
在所有。 這裏是我的代碼Android RecyclerView在向後滾動時未保存其狀態
public static class TextViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener,View.OnLongClickListener{
public LinearLayout enq_layout;
public LinearLayout item_layout;
public TextView enquire;
public int position;
public TextViewHolder(View itemView) {
super(itemView);
item_layout= (LinearLayout) itemView.findViewById(R.id.item_layout);
enq_layout= (LinearLayout) itemView.findViewById(R.id.enq_layout);
enquire=(TextView) itemView.findViewById(R.id.enquire);
//position=getLayoutPosition();
}
}
@Override
public int getItemViewType(int position) {
return product.get(position)!=null? VIEW_ITEM: VIEW_PROG;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.cardlayout_product, parent, false);
RecyclerView.ViewHolder vh = new TextViewHolder(v);
return vh;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
// Toast.makeText(act, "onBindViewHolder" +position, Toast.LENGTH_LONG).show();
final ProductDetails item = product.get(position);
final TextViewHolder hold=((TextViewHolder)holder);
//hold.position=position;
// hold.item_layout.setTag(position);
hold.item_layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// go to next activity
}
});
hold.item_layout.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
// show enquiry button
hold.enq_layout.setVisibility(View.VISIBLE);
}
});
hold.enquire.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//do some operation
int productid = Integer.parseInt(product.get(item.getPosition()).getProduct_id());
}
});
}
@Override
public int getItemCount() {
return product.size();
}
我試過這樣Why doesn't RecyclerView have onItemClickListener()? And how RecyclerView is different from Listview?,但我不能夠訪問onCreateViewHolder的onclick方法裏面的意見。
必須存儲在長按項目位置上,並嘗試顯示按鈕隱藏/顯示按鈕的基礎onBindViewHolder()上的存儲位置。 –
謝謝。現在它正在工作.. – n1m1
很高興幫助你,你做了很好的工作...,嘗試上傳你的改變,讓其他人也可以從中獲得想法。 –